#include #define SIEVECNT 1000000 #define SIEVELEN (SIEVECNT + 1) #define SIEVESQR 1000 #define PRIMECNT 78498 #define FACTCNT 11 #define CHOCCNT 100 int pr[PRIMECNT]; int cn, cs; long long cl, mm; void iread(void) { scanf("%d", &cn); } void iexec(void) { static int ps[SIEVELEN]; int n, m, p; for (ps[1] = 0, n = 2; n < SIEVELEN; ++n) ps[n] = 1; for (n = 2; n <= SIEVESQR; ++n) if (ps[n]) for (m = n + n; m < SIEVELEN; m += n) ps[m] = 0; for (p = 0, n = 2; n < SIEVELEN; ++n) if (ps[n]) pr[p++] = n; } void read(void) { scanf("%lld", &cl); } void exec(void) { long long fb[FACTCNT], d, q, r, p; int fl, fe[FACTCNT], f, e; for (d = cl, fl = 0, p = 0; d > 1 && p < PRIMECNT; ++p) if (q = d / pr[p], r = d - q * pr[p], r == 0) for (fb[fl] = pr[p], fe[fl] = 0; r == 0; ++fe[fl], fl += (r != 0)) d = q, q = d / pr[p], r = d - q * pr[p]; if (d > 1) fb[fl] = d, fe[fl++] = 1; for (p = 1, mm += p, f = fl - 1; f >= 0; --f) for (e = 0; e < fe[f]; ++e) p *= fb[f], mm += p; } void print(void) { printf("%lld\n", mm); } void repl(void) { iread(), iexec(); for (mm = 0, cs = 0; cs < cn; ++cs) read(), exec(); print(); } int main(void) { repl(); return 0; }