Pagini recente » Cod sursa (job #1460852) | Cod sursa (job #83931) | Cod sursa (job #1611990) | Cod sursa (job #1780860) | Cod sursa (job #2836063)
#include <bits/stdc++.h>
#pragma GCC optimzize ("Ofast")
using namespace std;
ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");
const int MOD = 9973;
long long n;
int s, d, e;
const int LIM = 1e6;
int prime;
vector <int> p;
bitset <LIM+5> np;
void ciur(){
np[0] = np[1] = true;
for(int i=4; i<=LIM; i+=2)
np[i] = true;
for(int i=3; i<=LIM/i; i+=2)
if(np[i] == false)
for(int j=i*i; j<=LIM; j+=i)
np[j] = true;
p.push_back(2);
for(int i=3; i <= LIM; i+=2)
if(np[i] == false)
p.push_back(i);
prime = (int)p.size();
}
int power(int a, int b){
int res = 1;
a %= MOD;
while(b != 0){
if(b&1)
res = (res * a) % MOD;
a = (a * a) % MOD;
b >>= 1;
}
return res;
}
int main (){
ios_base::sync_with_stdio(false);
fin.tie(nullptr);
fout.tie(nullptr);
ciur();
int teste;
fin>>teste;
while(teste--){
fin>>n;
s = d = 1;
for(int i=0; i < prime && p[i] <= n / p[i]; i++){
e = 0;
while(n % p[i] == 0){
e++;
n /= p[i];
}
d *= (e+1);
int a = (power(p[i], e+1) - 1) % MOD;
int b = power(p[i]-1, MOD - 2) % MOD;
s = (((s * a) % MOD) * b) % MOD;
}
if(n != 1){
d *= 2;
s = (long long)s * (n+1) % MOD;
}
fout<<d<<' '<<s<<'\n';
}
return 0;
}