Pagini recente » Cod sursa (job #1254856) | Cod sursa (job #455317) | Cod sursa (job #789870) | Cod sursa (job #2932074) | Cod sursa (job #138372)
Cod sursa(job #138372)
#include <cstdio>
#define dim 100001
int N;
double Phi[dim];
void Erathostene()
{
int i, j;
double d;
Phi[2] = 2;
for(i=3; i<dim; i+=2)
{
if(!Phi[i-1]) Phi[i-1] = i - 1;
if(!Phi[i]) Phi[i] = i;
Phi[i-1] *= 0.5;
if(Phi[i] == i)
{
d = i;
d = 1 - (double) (1 / d);
for(j=i; j<dim; j+=i)
{
if(!Phi[j]) Phi[j] = j;
Phi[j] *= d;
}
}
}
}
int main()
{
freopen("sum.in", "rt", stdin);
freopen("sum.out", "wt", stdout);
Erathostene();
int n;
for(scanf("%d", &N); N; --N)
{
scanf("%d", &n);
long ret = n * 2 * (int) Phi[n];
printf("%ld\n", ret);
}
fclose(stdin);
fclose(stdout);
}