Pagini recente » Cod sursa (job #1930018) | Cod sursa (job #1374821) | Cod sursa (job #2781384) | Cod sursa (job #1076558) | Cod sursa (job #953968)
Cod sursa(job #953968)
#include<fstream>
using namespace std;
const int mo=9973;
bool w[1000006];
long long p[500000],i,j,k,s,n,T,p1,p2;
long long pw(long long x,long long k)
{
if (k==1)
return x%mo;
int y;
if (k%2==0)
{
y=pw(x,k/2);
return (y*y)%mo;
}
else return (pw(x,k-1)*x)%mo;
}
int main()
{
ifstream f("ssnd.in");
ofstream g("ssnd.out");
for (i=2;i<=1000005;i++)
if (w[i]==0)
{
p[++k]=i;
for (j=i*i;j<=1000005;j+=i)
w[j]=1;
}
f >> T;
for (int I=1;I<=T;I++)
{
f >> n;
p1=1;p2=1;
for (i=1;p[i]*p[i]<=n;i++)
{
if (n%p[i]==0)
{
s=0;
while (n%p[i]==0)
{
n/=p[i];
s++;
}
p1=(p1*(s+1))%mo;
p2=(p2*(pw(p[i],s+1)-1)%mo*pw(p[i]-1,mo-2))%mo;
}
}
if (n>1)
{
s=1;
p1=(p1*(s+1))%mo;
p2=(p2*(pw(n,s+1)-1)%mo*pw(n-1,mo-2))%mo;
}
g << p1 << ' ' << p2 << "\n";
}
return 0;
}