Pagini recente » Cod sursa (job #1348610) | Cod sursa (job #1487732) | Cod sursa (job #307448) | Cod sursa (job #642357) | Cod sursa (job #2469379)
#include <fstream>
using namespace std;
ifstream in ("ssnd.in");
ofstream out ("ssnd.out");
bool p[1000001];
int v[80001];
const int MOD=9973;
int pw (int exp,int d)
{
int i=1,t=1;
for (i=1;i<=exp;i++)
t=(t*d)%MOD;
return t;
}
int main()
{
int cnt=0,t;
long long i,j,p1,p2,exp,a;
for (i=2;i<=1000000;i++)
if (!p[i])
{
v[++cnt]=i;
for (j=i*i;j<=1000000;j+=i)
p[j]=1;
}
in>>t;
for (i=1;i<=t;i++)
{
in>>a;
p1=p2=1;
for (i=1;v[i]*v[i]<=a;i++)
{
exp=0;
while (a%v[i]==0)
exp++,a/=v[i];
p1*=(exp+1);
if (exp)
p2=(p2*((pw(exp+1,v[i])-1)/(v[i]-1)))%MOD;
}
if (a>1)
{
p1=p1*2;
p2=(p2*((a*a-1)/(a-1)))%MOD;
}
out<<p1<<" "<<p2<<'\n';
}
return 0;
}