Cod sursa(job #117689)
| Utilizator | Data | 21 decembrie 2007 22:56:14 | |
|---|---|---|---|
| Problema | Fractii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include<stdio.h>
FILE *f=fopen("fractii.in","r"),
*g=fopen("fractii.out","w");
int i,j,n;
long long s,ni[1000006],nu[1000006],cal;
int main()
{ fscanf(f,"%d",&n);
for(i=2;i<=n;++i) if(nu[i]==0){ for(j=i;j<=n;j+=i) { if(ni[j]==0) ni[j]=1;
if(nu[j]==0) nu[j]=1;
ni[j]*=i;
nu[j]*=i-1;
}
}
s=n;
for(i=2;i<=n;++i) { cal=n*nu[i];
if(cal%ni[i]) ++s;
cal/=ni[i];
s+=cal;
}
fprintf(g,"%lld\n",s);
fclose(f);
fclose(g);
return 0;
}
//41
