Pagini recente » Cod sursa (job #1389293) | Cod sursa (job #603425) | Istoria paginii runda/concurstreiore | Cod sursa (job #1374050) | Cod sursa (job #1929345)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 1000000
FILE *fin, *fout;
unsigned long long phi[NMAX+1];
int main(){
unsigned long long n, i, j;
fin=fopen("fractii.in", "r");
fout=fopen("fractii.out", "w");
fscanf(fin, "%llu" ,&n);
///phi(n)=n*PROD((d-1)/d), d prim si d|n
for(i=2; i<=n; i++)
phi[i]=i;///initial phi(n)=n, apoi o sa inmultim cu PROD((d-1)/d)
for(i=2; i<=n; i++)
if(phi[i]==i)///daca nu l-am mai prelucrat pana acum
for(j=i; j<=n; j+=i)
phi[j]=phi[j]*(i-1)/i;///calculam valoarea
for(i=2; i<=n; i++)
phi[i]+=phi[i-1];///precalculare
fprintf(fout, "%llu", 2*phi[n]+1ULL);
fclose(fin);
fclose(fout);
return 0;
}