Pagini recente » Cod sursa (job #2814164) | Cod sursa (job #2762063) | Cod sursa (job #1058439) | Cod sursa (job #1632330) | Cod sursa (job #3342088)
#include <iostream>
#define NMAX 1000005
#define MOD 9973
int fast_pow(int base, int exp)
{
int product = 1;
while (exp) {
if (exp & 1)
product = (1LL * product * base) % MOD;
base = (1LL * base * base) % MOD;
exp >>= 1;
}
return product;
}
int main()
{
int t;
long long n;
int cnt, sum;
bool sieve[NMAX];
freopen("ssnd.in", "r", stdin);
freopen("ssnd.out", "w", stdout);
for (int i = 2; i < NMAX; ++i)
sieve[i] = true;
for (int i = 2; i < NMAX; ++i)
if (sieve[i])
for (int j = i + i; j < NMAX; j += i)
sieve[j] = false;
std::cin >> t;
for (int i = 0; i < t; ++i) {
std::cin >> n;
cnt = 1;
sum = 1;
for (int d = 2, e; 1LL * d * d <= n; ++d) {
if (!sieve[d])
continue;
if (n % d)
continue;
e = 0;
while (n % d == 0) {
n /= d;
++e;
}
cnt = (1LL * cnt * (e + 1)) % MOD;
sum = (((1LL * sum * ((fast_pow(d, e + 1) - 1 + MOD) % MOD)) % MOD) * (fast_pow(d - 1, MOD - 2) % MOD)) % MOD;
}
if (n > 1) {
cnt = (1LL * cnt * 2) % MOD;
sum = (1LL * sum * (n + 1)) % MOD;
}
std::cout << cnt << ' ' << sum << '\n';
}
return 0;
}