Pagini recente » Cod sursa (job #2048826) | Cod sursa (job #122298) | Cod sursa (job #1530675) | Cod sursa (job #1477960) | Cod sursa (job #2246305)
#include <iostream>
#include <fstream>
#include <vector>
#define MOD 9973
using namespace std;
ifstream fi("ssnd.in");
ofstream fo("ssnd.out");
vector<int> ciur;
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()
{
ciur = vector<int>(1000001);
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;
long long sum = 1, card = 1;
int m = n;
for(int i = 2; i*i < m; ++i)
{
if(n%i == 0 && ciur[i] == 0)
{
int e = 0;
while(n%i == 0)
{
e++;
n /= i;
}
card = card * (e+1);
sum = sum * ((Lgput(i,e+1) - 1)/(i - 1)) % MOD;
}
}
if(m == 1)
{
fo << 1 << ' ' << 1 << '\n';
continue;
}
if(card == 1)
fo<<2<<' '<<m+1<<'\n';
else
fo<<card<<' '<<sum<<'\n';
}
}