Cod sursa(job #1381572)

Utilizator EnachescuAlinEnachescu Alin EnachescuAlin Data 8 martie 2015 12:41:00
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <cmath>

using namespace std;

int phi(int x)
{
    int rezultat = 1, divizor = 2, putere;
    while (x > 1)
    {
        putere = 0;
        while (x % divizor == 0)
        {
            putere++;
            x /= divizor;
        }
        if (putere > 0)
            rezultat *= pow(divizor, putere - 1) * (divizor - 1); 
        divizor++;
    }

    return rezultat;
}

int main(void)
{
    int n;
    ifstream f("fractii.in", ifstream::in);
    ofstream g("fractii.out", ofstream::out);
    f >> n;
    int rezultat = 0;
    for (int i = 2; i <= n; i++)
    {
        rezultat += phi(i) * 2;
    }
    rezultat++;
    g << rezultat;
    f.close();
    g.close();

    return 0;
}