Cod sursa(job #1295541)

Utilizator teo2mirceFMI Popescu Mircea teo2mirce Data 19 decembrie 2014 19:07:10
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int fct(int n)
{
    int phi,i;
    phi=n;
    for(i=2;i<=n;i++)
    if(n%i==0)
    {
        phi=phi*(i-1)/i;
        while(n%i==0)n/=i;
    }
    return phi;
}
bool prim(int x)
{
    for(int d=2;d<=sqrt(x);d++)
        if(x%d==0)
        return 0;
    return 1;
}
int main()
{
    int n,nr=1;
    ifstream fin("fractii.in");
    fin>>n;
    ofstream fout("fractii.out");
    nr+=2*(n-1);
    for(int a=2;a<n;a++)
    {
        int x=0;
        if(prim(a))
            x=ceil(((a-1.0)/a)*(n-a));
        else
            x=round((1.0*fct(a)/a)*(n-a));
        //cout<<a<<" "<<x<<endl;
        nr+=2*x;
    }
    fout<<nr;
}