Pagini recente » Cod sursa (job #3267539) | Cod sursa (job #2353087) | Cod sursa (job #2654542) | Cod sursa (job #1497189) | Cod sursa (job #3317674)
#include <bits/stdc++.h>
using namespace std;
const int MOD = 9973;
const int NMAX = 1000000;
int nrdiv[NMAX + 1];
int sumdiv[NMAX + 1];
void ComputeSieveDivisors() {
for (int i = 1; i <= NMAX; i++) {
for (int j = i; j <= NMAX; j += i) {
nrdiv[j]++;
sumdiv[j] = (sumdiv[j] + i) % MOD;
}
}
}
int main() {
freopen("ssnd.in", "r", stdin);
freopen("ssnd.out", "w", stdout);
int t;
unsigned long long n;
scanf("%d", &t);
ComputeSieveDivisors();
while (t--) {
scanf("%llu", &n);
if (n <= NMAX)
printf("%d %d\n", nrdiv[n], sumdiv[n]);
else {
unsigned long long cnt = 0, s = 0;
for (unsigned long long i = 1; i * i <= n; i++) {
if (n % i == 0) {
if (i * i == n) {
cnt++;
s += i;
} else {
cnt += 2;
s += i + n / i;
}
}
}
printf("%llu %llu\n", cnt % MOD, s % MOD);
}
}
return 0;
}