Pagini recente » Cod sursa (job #2492181) | Cod sursa (job #925321) | Cod sursa (job #3285531) | Cod sursa (job #2847854) | Cod sursa (job #1324646)
#include<cstdio>
using namespace std;
int n,i,j,x;
#define NMAX 100000
int minp[NMAX + 1], phi[NMAX + 1];
void preproc()
{
/// minp
minp[1] = 1;
int i, j;
for (i = 2; i <= NMAX; i++) {
if (minp[i] == 0) {
for (j = i; j <= NMAX; j += i) {
if (minp[j] == 0) {
minp[j] = i;
}
}
}
}
/// phi
phi[1] = 1;
for (i = 2; i <= NMAX; i++) {
if (i % (minp[i] * minp[i]) == 0) {
phi[i] = phi[i / minp[i]] * minp[i];
} else {
phi[i] = phi[i / minp[i]] * (minp[i] - 1);
}
}
}
int main ()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
preproc();
scanf("%d",&x);
int i;
for(i = 1; i <= x; i++) {
long long m;
scanf("%lld", &m);
printf("%lld\n", 2 * m * phi[m]);
}
return 0;
}