Cod sursa(job #1295543)

Utilizator teo2mirceFMI Popescu Mircea teo2mirce Data 19 decembrie 2014 19:08:59
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int fct(int n)
     {
       int result = n;
       for(int i=2;i*i <= n;i++)
       {
         if (n % i == 0) result -= result / i;
         while (n % i == 0) n /= i;
       }
       if (n > 1) result -= result / n;
       return result;
     }
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;
}