Pagini recente » Cod sursa (job #1179091) | Cod sursa (job #668574) | Cod sursa (job #1671406) | Cod sursa (job #150055) | Cod sursa (job #2713998)
#include <fstream>
#define MOD 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
bool c[1000003] ;
long long n;
int t,i,j,s,nr,x,y,p[1000003],d,exp;
int lgp(int a,int b)
{
if(b==0)
return 1;
if(b==1)
return a%MOD;
int r=lgp(a,b/2);
r=r*r;
if(b%2==0)
return r%MOD;
return ((a%MOD)*(r%MOD))%MOD;
}
int main()
{
p[p[0]=1]=2;
for(i=3; i<=1000000; i+=2)
if(!c[i])
{
p[++p[0]]=i;
for(j=i+i; j<=1000000; j+=i)
c[j]=1;
}
fin>>t;
for(;t--;)
{
fin>>n;
nr=s=1;
for(i=1; n!=1&&1LL*p[i]*p[i]<=n; i++)
{
if (n%p[i])
continue;
d=p[i];
exp=1;
while (n%d==0)
{
exp++;
n/=d;
}
nr*=exp;
x=lgp(d,exp)-1;
if (x<0)
x+=MOD;
y=lgp(d+MOD-1,MOD-2);
x=(x*y)%MOD;
s=s*x%MOD;
}
if(n!=1)
{
nr*=2;
n%=MOD;
s=(s*(n+1))%MOD;
}
fout<<nr<<" "<<s<<"\n";
}
return 0;
}