Pagini recente » Cod sursa (job #2593469) | Cod sursa (job #1193806) | Cod sursa (job #461289) | Cod sursa (job #2680840) | Cod sursa (job #2356751)
#include <bits/stdc++.h>
#define MOD 9973
using namespace std;
bool Prim[1000005];
int Pr[78500], k = 1;
void Ciur()
{
Pr[k] = 2;
for(int i = 3; i <= 1000000; i += 2) {
if(!Prim[i]) {
Pr[++k] = i;
for(int j = 3; i * j <= 1000000; j += 2) Prim[i * j] = 1;
}
}
}
long long power(int n, int p)
{
long long ans = 1;
for(; p; p >>= 1) {
if((p & 1) == 1) ans = (1LL * ans * n);
n = (1LL * n * n);
}
return ans;
}
int main()
{
freopen("ssnd.in", "r", stdin);
freopen("ssnd.out", "w", stdout);
Ciur();
int t;
scanf("%d", &t);
while(t--) {
long long nr;
int ans1 = 1;
long long ans2 = 1;
scanf("%lld", &nr);
for(int i = 1; Pr[i] <= nr && i <= k; i++) {
int e = 0;
while(nr % Pr[i] == 0) nr /= Pr[i], ++e;
ans1 *= (e + 1);
if(e) ans2 = (ans2 * ((power(Pr[i], e + 1) - 1) / (Pr[i] - 1)));
}
if(nr > 1) ans2 = (1LL * ans2 * ((power(nr, 2) - 1) / (nr - 1))), ans1 *= 2;
printf("%d %lld\n", ans1, ans2 % MOD);
}
return 0;
}