inline long long int NWD(long long int a, long long int b) { if(a < b) return NWD(b, a); if(!b) return a; return NWD(b, a % b); }
long NWD(long a, long b) { if (a % b == 0) { return b; } else { return NWD(b, a % b); } }
void factorize(long n) { srand(time(NULL)); long randomed = rand() % n; //printf("%d\n", randomed); // printf("%d --- %d\n", n, randomed); if (NWD(n, randomed) > 1) { printf("%d --- %d\n", n, NWD(n, randomed)); } else { long r = solveDL(randomed, n); if (r == -1) { factorize(n); } else if (r % 2 == 0) { if (NWD(n, potega(randomed, r / 2) + 1) > 1) { printf("%d --- %d\n", n, (NWD(n, potega(randomed, r / 2) + 1))); cout << n << "---" << NWD(n, potega(randomed, r / 2) + 1) << endl; } else if (NWD(n, potega(randomed, r / 2) - 1) > 1) { printf("%d --- %d\n", n,(NWD(n, potega(randomed, r / 2) - 1))); } else { factorize(n); } } else { factorize(n); } } }
int main() { scanf("%d", &n); while (n--) { scanf("%d%d", &x, &y); printf("%Ld\n", NWD(x, y)); } return 0; }
Fraction::Fraction(const long& numerator_, const long& denominator_) { assert(denominator_ != 0); long a = std::abs(numerator_); long b = std::abs(denominator_); long x = NWD(a, b); if (denominator_ < 0) a = -a; numerator = a / x; denominator = b / x; }
int main() { int a, b; int nwd; cout<<"podaj 1 liczbe"<<endl; cin>>a; cout<<"podaj 2 liczbe:"<<endl; cin>>b; nwd=NWD(a,b); cout<<"\nnajwiekszy wspolny dzielnik 2 licb wynosi : "<<nwd<<endl; system("pause"); }
inline bool check(long long int i, long long int j) { long long int nwd = NWD(i, j); return !(nwd & (nwd - 1)); }
long long int NWD(long long int x, long long int y) { if (y == 0) return x; return NWD(y, x % y); }