Pagini recente » Cod sursa (job #2445740) | Cod sursa (job #3161346) | Profil valeria | Cod sursa (job #2593569) | Cod sursa (job #460048)
Cod sursa(job #460048)
#include <stdio.h>
#include <stdlib.h>
#define ll long long
int nr, a[100100][32], dim[100100];
ll lim, ret[100100];
ll back(int lvl, ll prod) {
if (lvl == dim[nr])
return lim*(lim/prod+1)/2;
return back(lvl+1,prod) - back(lvl+1,prod*a[nr][lvl]);
}
int main() {
freopen("sum.in", "r", stdin);
freopen("sum.out", "w", stdout);
int t,i,j;
for (i = 2; i < 100100; ++i) {
if (dim[i] == 0) {
for (j = i; j < 100100; j += i)
a[j][dim[j]++] = i;
}
lim = i << 1;
nr = i;
ret[i] = back(0,1);
}
scanf("%d\n", &t);
while (t--) {
char buff[32];
fgets(buff, 32, stdin);
printf("%lld\n", ret[atoi(buff)]);
}
return 0;
}