/* TLE test 19 check my prime sieve !! */ #include #include #define MAX 2000005 #define LOG(a) (log10(a)/log10(2)) long P[MAX],N,a[MAX]; void prime(long n) { long i,j; for(i=1;i<=n;i++) a[i] = i; for(i=2;i<=n;i++) { if(a[i]==0) continue; for(j=2;i*j<=n;j++) a[i*j] = 0; } } int main() { long i,j,sum = 0,val; cin >> N; prime(N); for(i=2;i<=N;i++) { if(a[i]!=0) P[i] = i-1; else { P[i] = i; for(j=i-1;j>=2;j--) { if(a[j]==0) continue; if(i%j!=0) continue; P[i] /= j; P[i] *= (j-1); } } sum += P[i]; } /*for(i = 1;i<=N;i++) cout << P[i] << " "; cout<<"Sum is "<