Pagini recente » Cod sursa (job #2836767) | Cod sursa (job #2110968) | Cod sursa (job #457515) | Cod sursa (job #3172605) | Cod sursa (job #2875448)
#include <bits/stdc++.h>
#define MAXN 1000
#define MOD 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long logpow(long long n, long long k) {
n %= MOD;
long long p = 1;
while (k) {
if (k % 2)
p = p * n % MOD;
n = n * n % MOD;
k /= 2;
}
return p % MOD;
}
void rezolvare(long long n) {
long long nrDiv = 1, sumDiv = 1;
if (n % 2 == 0) {
long long p = 0;
while (n % 2 == 0)
p++, n /= 2;
nrDiv *= p + 1, sumDiv *= (logpow(2, p + 1) - 1);
}
for (long long d = 3; 1LL * d * d <= n; d += 2)
if (n % d == 0) {
long long p = 0;
while (n % d == 0)
p++, n /= d;
nrDiv *= p + 1, sumDiv *= (logpow(d, p + 1) - 1) / (d - 1);
}
if (n > 1)
nrDiv *= 2, sumDiv *= (1LL * n * n % MOD - 1) / (n - 1);
fout << nrDiv % MOD << ' ' << sumDiv % MOD << '\n';
}
int main() {
long long t;
for (fin >> t; t; t--) {
long long x;
fin >> x;
rezolvare(x);
}
return 0;
}