Advertisement
Guest User

Ramim

a guest
Dec 3rd, 2016
642
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.45 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define ll unsigned long long
  3. using namespace std;
  4. bool isp[10000009];
  5. ll phi[10000009];
  6. ll ispr[10000009];
  7. vector<ll>prm;
  8. void sv(ll a,ll b)
  9. {
  10.  
  11.     for(ll i=a; i<=b; i++)
  12.         phi[i-a+1]=i;
  13.  
  14.     memset(isp,true,sizeof isp);
  15.     for(ll i=2; i<=10000005; i++)
  16.     {
  17.         if(isp[i])
  18.         {
  19.             prm.push_back(i);
  20.             for(ll j=i*i; j<=10000005; j+=i)
  21.             {
  22.                 isp[j]=false;
  23.  
  24.             }
  25.         }
  26.     }
  27. //cout<<"ok"<<endl;
  28. //cout<<prm.size()<<endl;
  29.     memset(ispr,0,sizeof ispr);
  30.     for(int x=0; x<prm.size(); x++)
  31.     {
  32.  
  33.         ll loka = (a/prm[x])*prm[x];
  34.         for(ll j=loka; j<=b; j+=prm[x])
  35.         {
  36.             if(j>=a && j<=b)
  37.             {
  38.                 ispr[j-a+1]=1;
  39.             }
  40.  
  41.         }
  42.  
  43.     }
  44.     for(int x=0; x<prm.size(); x++)
  45.     {
  46.         ll i =(a/prm[x])*prm[x];
  47.         for(ll j=i; j<=b; j+=prm[x])
  48.         {
  49.             if(j>=a && j<=b)
  50.             {
  51.                 ll loka = (prm[x]-1);
  52.  
  53.  
  54.  
  55.                 phi[j-a+1]/=(prm[x]);
  56.                 phi[j-a+1]*=(prm[x]-1);
  57.  
  58.             }
  59.         }
  60.  
  61.     }
  62. }
  63. int main()
  64. {
  65.  
  66.  
  67.     ll a,b;
  68.  
  69.     scanf("%llu %llu",&a,&b);
  70.     sv(a,b);
  71.     for(ll i=a; i<=b; i++)
  72.     {
  73.         if(i==1)
  74.             printf("1\n");
  75.         else if(ispr[i-a+1])
  76.             printf("%llu\n",phi[i-a+1]);
  77.         else
  78.             printf("%llu\n",i-1);
  79.  
  80.     }
  81.  
  82.  
  83.  
  84.     return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement