Pagini recente » Cod sursa (job #1714214) | Cod sursa (job #2908531) | Cod sursa (job #1382645) | Cod sursa (job #1159145) | Cod sursa (job #2255759)
#include <bits/stdc++.h>
#define ll long long
#define N 1000000
#define mod 9973
using namespace std;
//ifstream in("tst.in");
ifstream in("ssnd.in");
ofstream out("ssnd.out");
int t;
ll n;
bitset <N + 123> viz;
vector <int> primes;
ll lg(ll a, ll n){
ll rs = 1;
while(n){
if(n & 1LL)
rs = (rs * a) % mod;
a = (a * a) % mod;
n >>= 1LL;
}
return rs;
}
void solve(ll x){
ll unu = 1, doi = 1;
for(auto i : primes){
if(1LL * i * i > x)
break;
if(x % i)
continue;
ll cnt = 0;
while(x % i == 0){
cnt++;
x /= i;
}
// cout << i << ' ' << cnt << endl;
unu = (unu * (cnt + 1)) % mod;
doi = (doi * (lg(i, cnt + 1) - 1)) % mod;
doi = (doi * lg(i - 1, mod - 2)) % mod;
}
if(x > 1){
unu = (2LL * unu) % mod;
doi = (doi * (x + 1)) % mod;
}
out << unu << ' ' << doi << '\n';
}
int main(){
in >> t;
for(int i = 2; 1LL * i * i <= (ll) N; i++)
if(!viz[i]){
primes.push_back(i);
for(int j = i + i; j <= N; j += i)
viz[j] = 1;
}
while(t--){
in >> n;
solve(n);
}
return 0;
}