Cod sursa(job #982545)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 9 august 2013 14:12:21
Problema Sum Scor 75
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

#define Nmax 100001

unsigned long int ciur[Nmax], n, nr, i, l;

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

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

int main()
{
    freopen("sum.in", "r", stdin);
    freopen("sum.out", "w", stdout);

    gen();

    scanf("%lld ", &n);

    for ( ; n; n-- )
    {
        scanf("%u ", &nr);
        printf("%lld\n", ciur[nr]*2*nr*1LL);
    }

    return 0;
}