Cod sursa(job #1168620)
Utilizator | Data | 9 aprilie 2014 05:21:06 | |
---|---|---|---|
Problema | Fractii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.39 kb |
#include<stdio.h>
int N, fi[1000100];
long long ret;
int main() {
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%d",&N);
for(int i=1;i<=N;++i) {
fi[i]=i;
}
for(int i=1;i<=N;++i) {
ret += fi[i];
for(int j=2;i*j<=N;++j) {
fi[i*j]-=fi[i];
}
}
printf("%lld",2*ret-1);
return 0;
}