Cod sursa(job #1312155)
| Utilizator | Data | 8 ianuarie 2015 22:39:40 | |
|---|---|---|---|
| Problema | Fractii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.42 kb |
#include <stdio.h>
FILE *fin, *fout;
int main()
{
fin = fopen("fractii.in", "r");
fout = fopen("fractii.out", "w");
int n;
fscanf(fin, "%d", &n);
long long int sum = 0;
int sieve[n+23];
for(int i = 1; i<= n; i++) sieve[i] = i-1;
for(int i = 2; i<= n; i++)
{
for(int j = 2*i; j<= n; j+=i)
{
sieve[j] -= sieve[i];
}
sum+= sieve[i];
}
fprintf(fout, "%lld\n", sum * 2 + 1);
fclose(fin);
fclose(fout);
return 0;
}
