Cod sursa(job #2590501)

Utilizator cyg_vladioanBirsan 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;
}