sajid161

Class - 29 : Task - 1

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