Pagini recente » Cod sursa (job #3122936) | Cod sursa (job #2084416) | Cod sursa (job #1820831) | Cod sursa (job #2470794) | Cod sursa (job #1914189)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int t, i, d, n, ndiv, s, e, p;
bool ciur[1000001];
int main()
{
for(d=2; d*d<=1000001; ++d)
{
if(ciur[d]==0)
{
for(i=d*d; i<=1000001; i=i+d) ciur[i]=1;
}
}
fin>>t;
for(i=1; i<=t; ++i)
{
fin>>n;
if(ciur[n]==0) fout<<"2"<<" "<<(n+1)%9973<<"\n";
else
{
d=2;
ndiv=1;
s=1;
while(d*d<=n)
{
if(ciur[d]==0)
{
e=0;
p=1;
while(n%d==0)
{
++e;
p=p*d;
n=n/d;
}
if(e>0)
{
ndiv=ndiv*(e+1);
s=s*((p*d-1)/(d-1))%9973;
}
}
++d;
}
if(n>1)
{
ndiv=ndiv*2;
s=s*((n*n-1)/(n-1))%9973;
}
fout<<ndiv<<" "<<s<<"\n";
}
}
return 0;
}