Cod sursa(job #2154598)

Utilizator AndreiD31Dragan Andrei AndreiD31 Data 7 martie 2018 09:22:58
Problema Fractii Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
long long i,d,x,n,nr,p,prod;
bool ciur[1000010];
int main()
{

    for(i=2;i*i<=1000000;i++)
        if(ciur[i]==0)
        for(d=i*i;d<=1000000;d=d+i)
        ciur[d]=1;
    ciur[1]=1;
    ciur[0]=1;


    f>>n;
    nr=1;
    prod=n;
    for(i=2;i<=n;i++)
    {
        x=i;
        d=2;
        prod=i;
        while(d*d<=x)
        {
            if(ciur[d]==0)
            {
                p=0;
                while(x%d==0){p=1;x=x/d;}
                if(p!=0){prod=prod/d*(d-1);}
            }
            d++;
        }
        if(x!=1){prod=prod/x*(x-1);}
        nr=nr+prod*2;
    }
    g<<nr;
    return 0;
}