Pagini recente » Cod sursa (job #848480) | Cod sursa (job #2517024) | Cod sursa (job #2570172) | Cod sursa (job #2502069) | Cod sursa (job #1929337)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 1000000
FILE *fin, *fout;
int phi[NMAX+1];
unsigned long long SUMA;
int main(){
int n, i, j;
fin=fopen("fractii.in", "r");
fout=fopen("fractii.out", "w");
fscanf(fin, "%d" ,&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++)
SUMA+=phi[i];///precalculare
fprintf(fout, "%llu", 2*SUMA+1ULL);
fclose(fin);
fclose(fout);
return 0;
}