Cod sursa(job #2590501)
Utilizator | Birsan Vlad cyg_vladioan | Data | 28 martie 2020 09:40:55 |
---|---|---|---|
Problema | Fractii | Scor | 60 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <cstdio>
using namespace std;
int euler(int n)
{
int d , phi;
d = 2;
phi = n;
while(d * d <= n)
{
if(n % d == 0)
{
while(n % d == 0)
n = n / d;
phi = (phi / d) * (d - 1);
}
d ++;
}
if(n > 1)
phi = (phi / n) * (n - 1);
return phi;
}
int main()
{
freopen("fractii.in" , "r" , stdin);
freopen("fractii.out" , "w" , stdout);
int n , i;
long long nr = 0;
scanf("%d" , &n);
for(i = 2 ; i <= n ; i ++)
nr = nr + 1LL * 2 * euler(i);
printf("%lld\n" , nr + 1);
return 0;
}