Pagini recente » Cod sursa (job #2440593) | Cod sursa (job #2974295) | Cod sursa (job #2830245) | Cod sursa (job #1496) | Cod sursa (job #1956719)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
const int MOD = 9973;
inline long long lgput(long long a, int p) {
if(p == 0)
return 1;
if(p == 1)
return a%MOD;
if(p%2 == 0) {
long long t = lgput(a, p/2);
return (t*t)%MOD;
} else {
return (lgput(a, p-1)*(a%MOD))%MOD;
}
}
void solve(long long n) {
int todo = sqrt(n);
int am = 0;
long long sum = 1;
long long prod = 1;
for(long long i = 2; i <= todo; i++) {
if(n%i == 0) {
am = 0;
while(n%i == 0) {
n /= i;
am++;
}
sum *= (am+1);
long long T = (lgput(i, am+1)-1+MOD)%MOD;
long long invmod = lgput(i-1, MOD-2);
T = (T*invmod)%MOD;
prod = (prod*T)%MOD;
}
}
if(n != 1) {
sum *= 2;
long long T = (lgput(n, 2)-1+MOD)%MOD;
long long invmod = lgput(n-1, MOD-2);
T = (T*invmod)%MOD;
prod = (prod*T)%MOD;
}
out << sum << " " << prod << '\n';
}
int main() {
int t;
in >> t;
long long n;
for(int i = 1; i <= t; i++) {
in >> n;
solve(n);
}
return 0;
}