Cod sursa(job #1207170)

Utilizator ZenusTudor Costin Razvan Zenus Data 12 iulie 2014 14:19:49
Problema Sum Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <cstdio>

using namespace std;

#define NMAX 200000

int 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]*=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("%d\n",phi[X]);
}

return 0;
}