Pagini recente » Cod sursa (job #1480105) | Cod sursa (job #483623) | Cod sursa (job #895811) | Cod sursa (job #182998) | Cod sursa (job #1491928)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
const int mod = 9973;
int lgput(long long n, int p)
{
if(p == 0)
return 1;
n = n % mod;
int rez = lgput(n, p/2) % mod;
if(p % 2 == 0)
return 1LL * rez * rez % mod;
else
return (1LL * rez * rez % mod) * n % mod;
}
int invers_modular(long long n)
{
return lgput(n, mod - 2);
}
int main()
{
int T;
in >> T;
for(int l = 1; l <= T; l++)
{
long long n;
in >> n;
int nrdiv = 1;
int sumdiv = 1;
for(int i = 2; 1LL * i * i <= n; i++)
{
int exp = 0;
while(n % i == 0)
{
exp++;
n = n / i;
}
if(exp > 0)
{
int aux = lgput(i, exp + 1) - 1;
if(aux < 0)
aux += mod;
sumdiv = sumdiv * (1LL * aux * invers_modular(i - 1)) % mod;
nrdiv = nrdiv * (exp + 1);
}
}
if(n != 1) {
int aux = lgput(n, 2) - 1;
if(aux < 0)
aux += mod;
sumdiv = sumdiv * (1LL * aux * invers_modular(n - 1)) % mod;
nrdiv = nrdiv * 2;
}
out << nrdiv << " " << sumdiv << "\n";
}
return 0;
}