Cod sursa(job #1207174)

Utilizator ZenusTudor Costin Razvan Zenus Data 12 iulie 2014 14:21:20
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <cstdio>

using namespace std;

#define NMAX 100002

long long phi[NMAX];
int Q,i,j,X;

void build_phi()
{
    int i,j;

    for (i=2;i<NMAX;++i)
    phi[i]=i-1;

    for (i=2;i<NMAX;++i)
    for (j=2*i;j<NMAX;j+=i)
    phi[j]-=phi[i];

    for (i=2;i<NMAX;++i)
    phi[i]*=1LL*2*i;
}

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

scanf("%d",&Q);

build_phi();

while (Q--)
{
    scanf("%d",&X);
    printf("%lld\n",phi[X]);
}

return 0;
}