Cod sursa(job #624465)

Utilizator BugirosRobert Bugiros Data 22 octombrie 2011 13:49:13
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>

const int MAXN = 1000010;

int nr_fractii_ireduct = 0,n,e[MAXN];

void citire()
{
    freopen("fractii.in","r",stdin);
    freopen("fractii.out","w",stdout);
    scanf ("%d",&n);
}

void indicator_euler()
{
    for (int i = 1;i <= n;++i)
        e[i] = i;
    for (int p = 2;p <= n;++p)
        if (e[p] == p)
            for (int i = p;i <= n;i += p)
                e[i] = e[i] / p * (p - 1);

}

int main()
{
    citire();
    indicator_euler();
    for (int i = 1;i <= n;++i)
        nr_fractii_ireduct += 2 * e[i];
    printf ("%d",--nr_fractii_ireduct);
    return 0;
}