Cod sursa(job #2000815)

Utilizator AurelGabrielAurel Gabriel AurelGabriel Data 14 iulie 2017 20:26:15
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

using namespace std;

#define INF 1000000

void totient(unsigned long int* v, const unsigned long int sz)
{
    for(unsigned long int i = 1; i <= sz; i++)
        v[i] = i-1;
    for(unsigned long int i = 2; i <= sz; i++)
        for(unsigned long int j = 2*i; j <=sz; j+=i)
            v[j]-=v[i];
}

unsigned long int phi[INF+1];
unsigned long int n;

int main(int argc, char** argv)
{
    ios_base::sync_with_stdio(false);

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

    f >> n;
    totient(phi, INF);

    unsigned long long int sol = 0;
    for(unsigned long int i = 1; i <= n; i++)
        sol += phi[i];
    g << sol*2+1;

    return 0;
}