Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #include<iostream>
  3. using namespace std;
  4. bool p[1000001];
  5. void sieve(){
  6. for(int i=2;i*i<1000001;i++){
  7. if(p[i]){
  8. for(int j=i*i;j<1000001;j+=i)p[j]=false;
  9. }
  10. }
  11. }
  12. int factors(int n){
  13. int c,m=1,i=2;
  14. if(p[n]==false){
  15. c=0;
  16. while(n%i==0){
  17. n=n/i;
  18. c++;
  19. }
  20. m=(c+1)*m;
  21. }
  22. i++;
  23. while(n!=1 && p[n]!=true){
  24. c=0;
  25. while(n%i==0){
  26. n=n/i;
  27. c++;
  28. }
  29. m=(c+1)*m;
  30. i=i+2;
  31. }
  32. if(n!=1)m=m*2;
  33. return m;
  34. }
  35. int main(){
  36. int t,g,a,b;
  37. memset(p,true,sizeof(p));
  38. sieve();
  39. scanf("%d",&t);
  40. while(t--){
  41. scanf("%d %d",&a,&b);
  42. g=__gcd(a,b);
  43. printf("%d\n",factors(g));
  44. }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement