Advertisement
Guest User

Untitled

a guest
May 4th, 2018
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #define all(v) (v).begin(),(v).end()
  3. #define pb push_back
  4. #define ppb pop_back
  5. #define mp make_pair
  6. #define ri(x) scanf("%d",&(x))
  7. #define ri2(x,y) scanf("%d %d",&(x),&(y))
  8. #define ri3(x,y,z) scanf("%d %d %d",&(x),&(y),&(z))
  9. #define rll(x) scanf("%lld",&(x))
  10. #define rll2(x,y) scanf("%lld %lld",&(x),&(y))
  11. #define rll3(x,y,z) scanf("%lld %lld %lld",&(x),&(y),&(z))
  12. #define gc(x) ((x) = getchar())
  13. using namespace::std;
  14.  
  15. const long double PI = acos(-1);
  16. const long long MOD = 1000000000 +7;
  17.  
  18. typedef long long ll;
  19. typedef pair<ll,ll> pll;
  20. typedef pair<ll,pll> tll;
  21. typedef pair<int,int> ii;
  22. typedef pair<int,ii> iii;
  23. typedef vector<int> vi;
  24. typedef vector<ii> vii;
  25. typedef vector<iii> viii;
  26. typedef vector<ll> vll;
  27. typedef vector<pll> vpll;
  28. typedef vector<tll> vtll;
  29. typedef vector<string> vs;
  30. typedef set<int> si;
  31. typedef set<ii> sii;
  32. typedef set<iii> siii;
  33.  
  34. ll gcd(ll a, ll b){ return b==0?a:gcd(b,a%b);}
  35.  
  36. ll add(ll a, ll b, ll m = MOD){ return (a%m + b%m+2*m)%m;}
  37.  
  38. ll mul(ll a, ll b, ll m = MOD){ return ((a%m+m)*(b%m+m))%m;}
  39.  
  40. ll pow_mod(ll a, ll b, ll m = MOD){
  41. ll res = 1LL;
  42. a = a%m;
  43. while(b){
  44. if(b&1) res = mul(res,a,m);
  45. b >>= 1;
  46. a = mul(a,a,m);
  47. }
  48. return res;
  49. }
  50.  
  51. ll fastexp(ll a, ll b){
  52. ll res = 1LL;
  53. while(b){
  54. if(b&1) res = res*a;
  55. b >>= 1;
  56. a *= a;
  57. }
  58. return res;
  59. }
  60.  
  61. int gcdExtendido(int a, int b, int *x, int *y){
  62. if(a == 0){
  63. *x = 0;
  64. *y = 1;
  65. return b;
  66. }
  67. int x1, y1;
  68. int gcd = gcdExtendido(b%a,a,&x1,&y1);
  69.  
  70. *x = y1-(b/a)*x1;
  71. *y = x1;
  72. return gcd;
  73. }
  74.  
  75. int modInverso(int a, int m){
  76. int x, y;
  77. int g = gcdExtendido(a,m,&x,&y);
  78. if(g!=1) return -1;
  79. else return (x%m + m)%m;
  80. }
  81.  
  82. /****************************************
  83. *************P*L*A*N*T*I*L*L*A************
  84. *****************************************/
  85.  
  86. const int N = 1000000+5;
  87.  
  88. int n;
  89. int phi[N];
  90. ll ans[N];
  91.  
  92. void init(){
  93. phi[1] = 0;
  94. for(int i=2; i<N; i++){
  95. if(!phi[i]){
  96. phi[i] = i-1;
  97. for(int j=i<<1; j<N; j+=i){
  98. if(!phi[j]) phi[j] = j;
  99. phi[j] -= phi[j]/i;
  100. }
  101. }
  102. }
  103. for(int i=1; i<N; i++){
  104. for(int j=i<<1; j<N; j+=i){
  105. ans[j] += 1LL*i*phi[j/i];
  106. }
  107. }
  108. for(int i=2; i<N; i++){
  109. ans[i] += ans[i-1];
  110. }
  111. }
  112.  
  113.  
  114. int main(){
  115. init();
  116. while(ri(n)==1 and n){
  117. printf("%lld\n",ans[n]);
  118. }
  119. return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement