Cod sursa(job #660108)

Utilizator suzanicaSuzanica Mihu suzanica Data 11 ianuarie 2012 19:01:43
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <cstdio>

#define Xmax 100001

int N, X;
int P[Xmax];

void phi()
{
 int d, i;
 for (i=2; i<Xmax; ++i)
     P[i] = i;
 for (i=2; i<Xmax; i+=2)
     P[i] = P[i] / 2;      
 for (d=3; d<Xmax; d+=2)
     if (P[d] == d)
        for (i=d; i<Xmax; i+=d)
            P[i] = P[i] / d * (d-1);
}

int main()
{
 freopen("sum.in","r",stdin);
 freopen("sum.out","w",stdout);
 
 phi();
 
 scanf("%d", &N);
 while (N--)
       {
        scanf("%d", &X);
        printf("%lld\n", (long long)P[X] * 2 * X);
       }
 
 return 0;
}