Cod sursa(job #1588542)

Utilizator stanciuandreiStanciulescu Andrei stanciuandrei Data 3 februarie 2016 10:50:40
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fractii.in");
ofstream out("fractii.out");
int phi(int);
int main()
{
    int n, cnt=0;
    in>>n;
    for(int i=2; i<=n; i++)
    {
        cnt+=phi(i);
    }
    cnt*=2;
    cnt++;
    out<<cnt;
    return 0;
}
int phi(int x)
{
    int n=x;
    if(x%2==0)
    {
        n/=2;
        while(x%2==0)
            x>>=1;
    }
    for(int i=3;x!=1;i+=2)
    {
        if(x%i==0){
            n=(n/i)*(i-1);
            while(x%i==0)
                x/=i;
        }
    }
    return n;
}