Cod sursa(job #1196584)
| Utilizator | Data | 8 iunie 2014 14:48:14 | |
|---|---|---|---|
| Problema | Fractii | Scor | 30 |
| Compilator | c | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <stdio.h>
#include <stdlib.h>
#define MAX 1000001
int main()
{
FILE *in,*out;
in=fopen("fractii.in","r");
out=fopen("fractii.out","w");
int n=0,i,j,phi[MAX];
long sum=0;
for(i=0;i<MAX;i++)
phi[i]=0;
fscanf(in,"%d",&n);
for(i=1;i<=n;i++)
phi[i]=i-1;
for(i=1;i<=n/2;i++)
for(j=2;i*j<=n;j++)
phi[i*j]-=phi[i];
for(i=0;i<=n;i++)
sum+=2*phi[i];
sum++;
fprintf(out,"%d",sum);
fclose(in);
fclose(out);
return 0;
}
