#include <stdio.h>
#include <memory.h>
#define NMAX 1000//01
double p[NMAX];
void ciur()
{
int i, j;
double d;
int prim[] = {3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, -1};
/*for(j = 4, p[2] = 1; j < NMAX; j += 2)
{
p[j] = j;
p[j-1] = j-1;
if(j % 2 == 0)
p[j] *= 0.5;
}
*/
for(i = 2; < NMAX; ++i)
p[i] = i;
i = 0;
while(prim[i] != -1)
{
for(j = d = prim[i], d = 1 - (double)1 / d; j < NMAX; j += prim[i])
{
if(!p[j])
p[j] = j;
p[j] *= d;
}
}
//else
// printf("0, ");
//printf("%ld are %d div primi\n", i, p[i]);
}
}
int main()
{
int n, x;
freopen("sum.in", "r", stdin);
freopen("sum.out", "w", stdout);
//memset(p, 0, sizeof(p));
ciur();
scanf("%d\n", &n);
while(n--)
{
scanf("%d\n", &x);
printf("%.0lf\n", 2*p[x]*x);
}
fclose(stdin);
fclose(stdout);
return 0;
}