Cod sursa(job #1207151)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 12 iulie 2014 13:52:34
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <cstdio>
#define NMAX 100000
using namespace std;
int N;
int Phi[NMAX+5];

void initializePhi()
{
    for(int i=1;i<=NMAX;i++)
        Phi[i]=i-1;
}

void Eratostenes()
{
    int i,j;
    for(i=2;i*2<=NMAX;i++)
        if(Phi[i]==i-1)
            for(j=i+i;j<=NMAX;j+=i)
                Phi[j]-=Phi[j]/i;
}

void getSolutions()
{
    int X;
    for(int i=1;i<=N;i++)
    {
        scanf("%d",&X);
        printf("%lld\n",2LL*X*Phi[X]);
    }
}

int main()
{
    freopen("sum.in","r",stdin);
    freopen("sum.out","w",stdout);
    scanf("%d",&N);
    initializePhi();
    Eratostenes();
    getSolutions();
    return 0;
}