Pagini recente » Cod sursa (job #380979) | Cod sursa (job #1662098) | Cod sursa (job #2733110) | Cod sursa (job #1487949) | Cod sursa (job #120867)
Cod sursa(job #120867)
//70 puncte
#include <stdio.h>
#define in "sum.in"
#define out "sum.out"
#define NMAX 210001
int phi[NMAX];
int N, X;
int main()
{
int i, j;
for ( i = 1; 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];
freopen( in, "r", stdin );
freopen( out, "w", stdout );
scanf( "%d", &N );
#define dim 800000
int poz = 0; char buf[dim];
fread( buf, 1, dim, stdin );
#define cit(x) \
{ \
x = 0; \
while(buf[poz] < '0') \
{ \
++poz; \
if(poz == dim) \
fread(buf,1,dim,stdin), poz = 0; \
} \
while(buf[poz] >= '0') \
{ \
x = x*10 + buf[poz] - '0'; \
if(++poz == dim) \
fread(buf,1,dim,stdin), poz = 0; \
} \
}
for ( i = 1; i <= N; ++i )
{
cit(X)
long int REZ = ((phi[X]*X)<<1);
printf( "%ld\n", REZ );
}
return 0;
}