Pagini recente » Cod sursa (job #222885) | Cod sursa (job #2437518) | Cod sursa (job #510145) | Cod sursa (job #2417740) | Cod sursa (job #460046)
Cod sursa(job #460046)
#include <stdio.h>
#include <string.h>
#define Nmax 1024
#define ll long long
int nr, a[100100][32], dim[100100], ret;
ll lim;
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;
scanf("%d", &t);
for (i = 2; i < 100100; ++i)
if (dim[i] == 0) {
for (j = i; j < 100100; j += i)
a[j][dim[j]++] = i;
}
while (t--) {
scanf("%d", &nr);
lim = nr << 1;
printf("%lld\n", back(0,1));
}
return 0;
}