Pagini recente » Cod sursa (job #2239624) | Cod sursa (job #1741826) | Cod sursa (job #2370519) | Cod sursa (job #902803) | Cod sursa (job #2246312)
#include <iostream>
#include <fstream>
#include <vector>
#define MOD 9973
using namespace std;
ifstream fi("ssnd.in");
ofstream fo("ssnd.out");
int ciur[1000001];
long long Lgput(long long a, long long n)
{
long long sol = 1;
while(n)
{
if(n%2 == 1)
sol *= a;
n /= 2;
a *= a;
}
return sol;
}
void MakeCiur()
{
for(int i = 2; i < 1000001; ++i)
{
if(ciur[i] == 0)
{
for(int j = 2; j*i < 1000001; ++j)
{
ciur[j*i] = 1;
}
}
}
}
int main()
{
MakeCiur();
long long n,t;
fi>>t;
while(t--)
{
fi>>n;
if(n == 1)
{
fo << 1 << ' ' << 1 << '\n';
continue;
}
long long sum = 1, card = 1;
long long m = n;
for(long long i = 2; i*i <= m; ++i)
{
if(n%i == 0 && ciur[i] == 0)
{
long long e = 0;
while(n%i == 0)
{
e++;
n /= i;
}
card = card * (e+1);
sum = sum * ((Lgput(i,e+1) - 1)/(i - 1)) % MOD;
}
}
if(card == 1)
fo<<2<<' '<<m+1<<'\n';
else
fo<<card<<' '<<sum<<'\n';
}
}