Cod sursa(job #2227910)
Utilizator | Data | 2 august 2018 10:30:10 | |
---|---|---|---|
Problema | Fractii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <stdio.h>
using namespace std;
int eul[1000001], n;
void euler() {
for(int i = 1; i <= n; i++) eul[i] = i;
for(int i = 2; i <= n; i++)
if (eul[i] == i)
for(int j = i; j <= n; j += i)
eul[j] /= i, eul[j] *= (i-1);
}
int main()
{
freopen("fractii.in", "r", stdin);
freopen("fractii.out", "w", stdout);
scanf("%i", &n);
long long fr = 0;
euler();
for (int i = 2; i <= n; i++) fr += eul[i];
printf("%lld", fr*2 + 1);
return 0;
}