Pagini recente » Cod sursa (job #660870) | Cod sursa (job #2512812) | Cod sursa (job #859673) | Cod sursa (job #2673050) | Cod sursa (job #2195868)
#pragma GCC optimize("03")
#include <bits/stdc++.h>
#define ll long long
#define MOD 9973
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
int t;
ll n;
vector <int> primes;
bitset <1000100> viz;
void ciur(){
for(int i = 2; i <= 1000000; i++)
if(!viz[i]){
primes.push_back(i);
for(int j = i + i; j <= 1000000; j += i)
viz[j] = 1;
}
}
ll lg(ll a, ll b){
ll rs = 1;
while(b){
if(b & 1)
rs = (rs * a) % MOD;
a = (a * a) % MOD;
b >>= 1LL;
}
return rs;
}
void solve(ll n){
ll nr = 1, sum = 1;
for(auto i : primes){
if(1LL * i * i > n)
break;
if(n % i)
continue;
ll cnt = 0;
while(n % i == 0)
cnt++, n /= i;
nr = (nr * (cnt + 1)) % MOD;
sum = (sum * (lg(i, cnt + 1) - 1)) % MOD;
sum = (sum * lg(i - 1, MOD - 2)) % MOD;
}
if(n > 1){
nr = (nr * 2LL) % MOD;
sum = (sum * (n + 1)) % MOD;
}
out << nr << ' ' << sum << '\n';
}
int main(){
ciur();
in >> t;
while(t--){
in >> n;
solve(n);
}
return 0;
}