Cod sursa(job #1999730)

Utilizator attack2002Girban Alexandru attack2002 Data 11 iulie 2017 22:58:56
Problema Fractii Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
using namespace std;
bool Primitate(int x)
{
    if(x==1)
    {
        return true;
    }
    if(x==2)
    {
        return true;
    }
    if(x==3)
    {
        return true;
    }
    if(x%2==0)
    {
        return false;
    }
    for(int i=3;i*i<=x;i=i+2)
    {
        if(x%i==0)
        {
            return false;
        }
    }
    return true;
}
int Phi(int a)
{
    int temp(a);
    if(Primitate(a)==1)
    {
        return a-1;
    }
    if(a%2==0)
    {
        temp = a / 2;
    }
    for(int p=3;2*p<=a;++p)
    {
        if(a%p==0 && Primitate(p)==1)
        {
            temp = temp * (p-1) / p;
        }
    }
    return temp;
}
int main()
{
    ifstream read("fractii.in");
    ofstream write("fractii.out");
    int N;
    read>>N;
    long long int r(0);
    for(int i=2;i<=N;++i)
    {
        r = r + Phi(i);
    }
    r = 2 * r + 1;
    write<<r;
}