Cod sursa(job #1318832)

Utilizator firutibogdanFiruti Bogdan-Cristian firutibogdan Data 16 ianuarie 2015 13:45:19
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<fstream>
using namespace std;
int n,s,q;
long long fi(long long n)
{
    long long d,x,e,p;
    d=2;
    x=n;
    p=n;
    while(d*d<=x)
    {
        if(x%d==0)
        {
            e=0;
            while(x%d==0)
            {
                e++;
                x=x/d;
            }
            if(e>0)
            {
                p=(p/d)*(d-1);
            }
        }
        d++;
    }
    if(x>1)
    {
        p=(p/x)*(x-1);
    }
    return p;
}
int main()
{
     ifstream fin("fractii.in");
    ofstream fout("fractii.out");
    fin>>n;
    if(n==0)
    {
        fout<<"0";
    }
    else
    {
        s=0;
        for(q=2;q<=n;q++)
        {
            s=s+fi(q);
        }
        s=s*2+1;
        fout<<s;
    }
    fin.close();
    fout.close();
    return 0;
}