Cod sursa(job #759741)
| Utilizator | Data | 19 iunie 2012 00:51:38 | |
|---|---|---|---|
| Problema | Fractii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <cstdio>
#include "stdlib.h"
int main()
{
int *phi;
FILE *f = fopen("fractii.in","r");
FILE *g = fopen("fractii.out","w");
int n;
fscanf(f,"%d",&n);
phi = (int*)malloc((1+n)*sizeof(int));
int s = 1;
//compute phi(n)
for (int i=1;i<=n;i++) phi[i]=i;
for (int i=2;i<=n;i++)
{
if (phi[i]==i)
for (int j=i;j<=n;j+=i)
{
phi[j] /=i;
phi[j] *= (i-1);
}
s += phi[i];
}
fprintf(g,"%ld",s);
fclose(f);
fclose(g);
}