Advertisement
sabertooth09

Untitled

Nov 14th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef unsigned long long ll;
  4. #define MAX 10000
  5. #define all(v) v.begin(),v.end()
  6. ll N=5*1e6+2,m;
  7. vector<bool>isprime(N);
  8. vector<ll>phi;
  9. vector<ll>prime;
  10.  
  11. void seive()
  12. {
  13.     ll i,n=N,j;
  14.     isprime[1]=1;
  15.     isprime[0]=1;
  16.  
  17.     for(i=4; i<=n; i+=2)
  18.         isprime[i]=1;
  19.  
  20.     for(i=3; i*i<=n; i+=2)
  21.     {
  22.         if(isprime[i]==0)
  23.             for(j=i*i; j<=n; j+=i)
  24.                 isprime[j]=1;
  25.     }
  26.     for(i=0; i<=n; i++)
  27.     {
  28.         if(isprime[i]==0)
  29.             prime.push_back(i);
  30.     }
  31. }
  32.  
  33. void solve()
  34. {
  35.     ll i,j;
  36.     for(i=0; i<N; i++)
  37.         phi.push_back(i);
  38.     for(i=0; i<prime.size(); i++)
  39.     {
  40.         for(j=prime[i]; j<N; j+=prime[i])
  41.         {
  42.             phi[j]*=(prime[i]-1);
  43.             phi[j]/=prime[i];
  44.         }
  45.     }
  46. }
  47.  
  48. int main()
  49. {
  50.     seive();
  51.     solve();
  52.    // freopen("input.txt","r",stdin);
  53.     // freopen("output.txt","w",stdout);
  54.     ll test,t,i;
  55.     vector<ll>a(N+8,0);
  56.     for(i=2; i<N; i++)
  57.         a[i]=phi[i]*phi[i]+a[i-1];
  58.     scanf("%llu",&test);
  59.     for(t=1; t<=test; t++)
  60.     {
  61.         ll a1,b;
  62.         scanf("%llu %llu",&a1,&b);
  63.         a1--;
  64.         printf("Case %llu: %llu\n",t,a[b]-a[a1]);
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement