Cod sursa(job #989421)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 25 august 2013 16:46:51
Problema Fractii Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>

using namespace std;

#define Nmax 1000005

unsigned ciur[Nmax];
unsigned sol = 0;
unsigned N;

void gen()
{
    for ( int i = 2; i < Nmax; ++i )
            ciur[i] = i - 1;

    for ( int i = 2; i < Nmax; ++i )
            for ( int j = 2*i; j < Nmax; j += i )
                    ciur[j] -= ciur[i];
}

void solve()
{
    ifstream f("fractii.in");
    ofstream g("fractii.out");

    f >> N;

    for ( int i = 1; i <= N; ++i )
            sol += 1LL * ciur[i];

    g << 1LL * 2 * sol + 1 << "\n";

    f.close();
    g.close();
}

int main()
{
    gen();
    solve();

    return 0;
}