Cod sursa(job #800632)
| Utilizator | Data | 22 octombrie 2012 10:43:24 | |
|---|---|---|---|
| Problema | Fractii | Scor | 30 |
| Compilator | c | Status | done |
| Runda | Arhiva de probleme | Marime | 0.44 kb |
#include <stdio.h>
long v[1000001];
int main() {
freopen("fractii.in", "r", stdin);
freopen("fractii.out", "w", stdout);
long n;
scanf("%ld", &n);
long i, j;
for (i = 2; i< n+1; i++)
v[i] = i;
long result = 1;
for (i = 2; i < n+1; i++){
if (v[i] == i) { // daca e prim
for (j = i; j < n+1; j+=i) {
v[j] /= i;
v[j] *= (i-1);
}
}
result += (2 * v[i]);
}
printf("%ld\n", result);
return 0;
}
