Cod sursa(job #1723094)
Utilizator | Data | 29 iunie 2016 17:59:39 | |
---|---|---|---|
Problema | Fractii | Scor | 30 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <stdio.h>
#define MAX_N 1000000
int euler[1+MAX_N];
int main(){
int n, i, d, s;
FILE *fin = fopen( "fractii.in" , "r" );
fscanf(fin, "%d", &n);
fclose( fin );
for(i = 1; i <= n; i++)
euler[i] = i;
for(d = 2; d <= n; d++)
if(euler[d] == d)
for(i = d; i <= n; i += d)
euler[i] = euler[i] - euler[i] / d;
s = 0;
for(i = 1; i <= n; i++)
s += euler[i];
FILE *fout = fopen( "fractii.out" , "w" );
fprintf(fout, "%d", 2 * s - 1);
fclose( fout );
return 0;
}