Language: C++

#include <iostream>
#include <vector>
#include <assert.h>
#include <math.h>
using namespace std;

uint64_t mutual_mod(uint64_t A, uint64_t B){
    assert(A >= B);
    uint64_t gcd;
    uint64_t modulo = 0;
    while(1){
        modulo = A % B;
        if(modulo == 0){
            gcd = B;
            break;
        }
        else{
            A = B;
            B = modulo;
        }
    }
    return gcd;
}

void prime_decompose3(vector<int>& cds, uint64_t gcd){
    cds.push_back(1);
    for(uint64_t i = 2; i*i <= gcd; i++){
        if(gcd % i == 0){
            cds.push_back(i);
        }
        while(gcd % i == 0){
            gcd /= i;
        }
    }
  	if(gcd > 1){
      cds.push_bach(gcd);
    }
    return;
}

int main(){
    uint64_t A,B;
    cin >> A >> B;
    uint64_t gcd = 0;
    if(A > B){
        gcd = mutual_mod(A,B);
    }
    else{
        gcd = mutual_mod(B,A);
    }    
    vector<int> cd_vec;
    prime_decompose3(cd_vec,  gcd);

    cout << cd_vec.size();
    return 0;
}


Compiler output:
a.cc:7:1: error: 'uint64_t' does not name a type
    7 | uint64_t mutual_mod(uint64_t A, uint64_t B){
      | ^~~~~~~~
a.cc:5:1: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
    4 | #include <math.h>
  +++ |+#include <cstdint>
    5 | using namespace std;
a.cc:25:41: error: 'uint64_t' has not been declared
   25 | void prime_decompose3(vector<int>& cds, uint64_t gcd){
      |                                         ^~~~~~~~
a.cc: In function 'void prime_decompose3(std::vector<int>&, int)':
a.cc:27:9: error: 'uint64_t' was not declared in this scope
   27 |     for(uint64_t i = 2; i*i <= gcd; i++){
      |         ^~~~~~~~
a.cc:27:9: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
a.cc:27:25: error: 'i' was not declared in this scope
   27 |     for(uint64_t i = 2; i*i <= gcd; i++){
      |                         ^
a.cc:36:11: error: 'class std::vector<int>' has no member named 'push_bach'; did you mean 'push_back'?
   36 |       cds.push_bach(gcd);
      |           ^~~~~~~~~
      |           push_back
a.cc: In function 'int main()':
a.cc:42:5: error: 'uint64_t' was not declared in this scope
   42 |     uint64_t A,B;
      |     ^~~~~~~~
a.cc:42:5: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
a.cc:43:12: error: 'A' was not declared in this scope
   43 |     cin >> A >> B;
      |            ^
a.cc:43:17: error: 'B' was not declared in this scope
   43 |     cin >> A >> B;
      |                 ^
a.cc:44:13: error: expected ';' before 'gcd'
   44 |     uint64_t gcd = 0;
      |             ^~~~
      |             ;
a.cc:46:9: error: 'gcd' was not declared in this scope
   46 |         gcd = mutual_mod(A,B);
      |         ^~~
a.cc:46:15: error: 'mutual_mod' was not declared in this scope
   46 |         gcd = mutual_mod(A,B);
      |               ^~~~~~~~~~
a.cc:49:9: error: 'gcd' was not declared in this scope
   49 |         gcd = mutual_mod(B,A);
      |         ^~~
a.cc:49:15: error: 'mutual_mod' was not declared in this scope
   49 |         gcd = mutual_mod(B,A);
      |               ^~~~~~~~~~
a.cc:52:31: error: 'gcd' was not declared in this scope
   52 |     prime_decompose3(cd_vec,  gcd);
      |                               ^~~