Pagini recente » Cod sursa (job #1306742) | Cod sursa (job #832761) | Cod sursa (job #969146) | Cod sursa (job #969571) | Cod sursa (job #2098351)
#include <bits/stdc++.h>
#define mod 9973
#define ll long long
#define N 1000002
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
int t, sum, nr, cnt;
ll x;
vector <int> primes;
bool viz[1000100];
void mul(int &n, int val){
n = (n * val) % mod;
}
void precalc(){
for(int i = 2; i <= N; i++)
if(!viz[i]){
primes.push_back(i);
for(int j = i + i; j <= N; j += i)
viz[j] = 1;
}
}
int lgput(int a, int p){
a %= mod;
int rs = 1;
while(p){
if(p & 1)
mul(rs, a);
mul(a, a);
p /= 2;
}
return rs;
}
void solve(){
in >> x;
sum = nr = 1;
for(auto i : primes){
if(1LL * i * i > x)
break;
cnt = 0;
while(x % i == 0)
cnt++, x /= i;
if(cnt){
nr *= cnt + 1;
mul(sum, lgput(i, cnt + 1) - 1);
mul(sum, lgput(i - 1, mod - 2));
}
}
if(x > 1){
nr *= 2;
mul(sum, x + 1);
}
out << nr << ' ' << sum << '\n';
}
int main(){
in >> t;
precalc();
while(t--)
solve();
return 0;
}