Pagini recente » Cod sursa (job #3273305) | Cod sursa (job #913719) | Cod sursa (job #903767) | Cod sursa (job #214661) | Cod sursa (job #1701998)
#include<cstdio>
long long inv[9999];//9973
#define M 9973
long long putere(long long a,long long n)//a^n
{
long long p;
p=1;
while(n!=0)
{
if(n%2!=0)
p=p*a%M;
a=a*a%M;
n/=2;
}
return p%M;
}
int main()
{
long long n,t,i,d,p,nrdiv,sdiv,put,cn,s,e;
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%lld",&t);
for(i=1;i<M;i++)
{
inv[i]=putere(i,M-2);
//printf("%d ",inv[i]);
}
//printf("\n");
for(i=1;i<=t;i++)
{
scanf("%lld",&n);
cn=n;
d=2;
nrdiv=sdiv=1;
s=n;
while(d*d<=n)
{
p=0;
put=1;
while(n%d==0)
{
n/=d;
p++;
put=put*d%M;
}
put*=d;
put %= M;
put--;
if (put == -1)
put += M;
if(p!=0)
{
nrdiv=nrdiv*(p+1);
//sdiv=sdiv*((put-1)/(d-1))%9973;
sdiv =sdiv*put%M*inv[d-1]%M;
s=s/d*(d-1);
}
d++;
}
if(n!=1)
{
nrdiv=nrdiv*2;
sdiv=sdiv*(n+1)%9973;
s=s/n*(n-1);
}
//n^e
/*
n=cn;
e=s-1;
p=1;
while(e!=0)
{
if(e%2!=0)
p=p*n%M;
n=n*n%M;
e/=2;
}
if(nrdiv==2)
sdiv=cn+1;
*/
printf("%lld %lld\n",nrdiv,sdiv%9973);
}
return 0;
}