Cod sursa(job #966894)
| Utilizator | Data | 26 iunie 2013 18:43:04 | |
|---|---|---|---|
| Problema | Fractii | Scor | 30 |
| Compilator | c | Status | done |
| Runda | Arhiva de probleme | Marime | 0.42 kb |
#include <stdio.h>
int main()
{
freopen ("fractii.in","r",stdin);
freopen ("fractii.out","w",stdout);
int N, i, j;
scanf("%d", &N);
int phi[N + 1];
int count = 0;
for (i=1;i<=N;i++)
phi[i]=i;
for (i=2;i<=N;i++)
if (phi[i]==i)
for (j=i;j<=N;j+=i){
phi[j] /=i;
phi[j] *= (i-1);
}
for(i = 2; i <= N; i++){
count += phi[i];
}
printf("%d\n", count * 2 + 1);
return 0;
}