sajid161

Class - 30 : Task - 1

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