Advertisement
sajid161

Class - 30 : Task - 2

Jan 27th, 2025
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define endl '\n'
  4. #define optimize() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  5. #define fraction() cout.unsetf(ios::floatfield); cout.precision(10); cout.setf(ios::fixed,ios::floatfield);
  6. typedef long long int ll;
  7. const int mx=1e6+123;
  8. bitset<mx> is_prime;
  9. vector<ll>v;
  10. void prime_gen(ll n)
  11. {
  12.     is_prime[2]=1;
  13.     for(ll i=3;i<=n;i+=2)
  14.     {
  15.          is_prime[i]=1;
  16.     }
  17.     for(ll i=3;i*i<=n;i+=2)
  18.     {
  19.         if(is_prime[i]==1)
  20.         {
  21.             for(ll j=i*i;j<=n;j+=2*i)
  22.             {
  23.                 is_prime[j]=0;
  24.             }
  25.         }
  26.     }
  27.     v.push_back(2);
  28.     for(int i=3;i<=n;i+=2)
  29.     {
  30.         if(is_prime[i]==1) v.push_back(i);
  31.     }
  32. }
  33. void prime_div(ll n)
  34. {
  35.     ll ans=1;
  36.     for(auto u:v)
  37.     {
  38.         if(u*u>n) break;
  39.         if(n%u==0)
  40.         {
  41.             int cnt=0;
  42.             while(n%u==0)
  43.             {
  44.                 cnt++;
  45.                 n/=u;
  46.             }
  47.             ans*=(cnt+1);
  48.         }
  49.     }
  50.     if(n>1) ans*=2;
  51.     cout<<ans;
  52. }
  53. int main()
  54. {
  55.      optimize();
  56.     prime_gen(1e6);    
  57.     ll t;
  58.     cin>>t;
  59.     while(t--)
  60.     {
  61.         ll a,b;
  62.         cin>>a>>b;
  63.         prime_div(__gcd ( a, b ));
  64.         cout<<endl;
  65.     }
  66. }
  67.  
  68.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement