Cod sursa(job #2177910)

Utilizator YouDontNeedMyNameJurcut Paul YouDontNeedMyName Data 18 martie 2018 21:49:07
Problema Fractii Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
using namespace std;
ifstream cin("fractii.in");
ofstream cout("fractii.out");
int euler(int x)
{
    if(x==1)
        return 1;
    int s=2*x;
    if(x%2==0)
    {
        s/=2;
        while(x%2==0)
            x/=2;
    }
    int d=3;
    while(x!=1 && d*d<=x)
    {
        if(x%d==0)
        {
            s/=d;
            s=s*(d-1);
            while(x%d==0)
                x/=d;
        }
        d+=2;
    }
    if(x!=1)
    {
        s/=x;
        s=s*(x-1);
    }
    return s;
}
int main()
{
    int n;
    long long s=0;
    cin >> n;
    for(int i=1; i<=n; i++)
    {
        s=s+euler(i);
    }
    cout << s;
    return 0;
}