Pagini recente » Cod sursa (job #507095) | Cod sursa (job #1827812) | Cod sursa (job #1538701) | Cod sursa (job #3220475) | Cod sursa (job #720655)
Cod sursa(job #720655)
#include<cstdio>
#define NMax 1000000
#define modulo 9973
using namespace std;
long long pr[200005];
int ka;
char bif[NMax+5];
void ciur ()
{
int i,j;
for (i=2; i<=NMax; i++)
if (!bif[i])
{
pr[++ka]=(long long)(i);
for (j=i+i; j<=NMax; j+=i)
bif[j]=1;
}
}
long long pow (long long a, long long x)
{
if (x==0)
return 1;
if (x==1)
return a%modulo;
if (x%2)
return (a*pow(a,x-1))%modulo;
long long y=pow(a,x/2);
return (y*y)%modulo;
}
int main ()
{
int t,i,j;
long long n,aux,nr,sum,exp;
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
ciur();
scanf("%d",&t);
for (i=1; i<=t; i++)
{
scanf("%lld",&n);
nr=1; sum=1;
for (j=1; pr[j]*pr[j]<=n; j++)
if (n%pr[j]==0)
{
exp=0;
while (n%pr[j]==0)
{
exp++;
n/=pr[j];
}
nr*=(exp+1);
long long aux1=(pow(pr[j],exp+1)-1)%modulo;
long long aux2=(pow(pr[j]-1,modulo-2))%modulo;
sum=(((sum*aux1)%modulo)*aux2)%modulo;
}
if (n!=1)
{
nr*=2;
sum=(sum*(n+1))%modulo;
}
printf("%lld %lld\n",nr,sum);
}
return 0;
}