Pagini recente » Cod sursa (job #1689238) | Cod sursa (job #2717168) | Cod sursa (job #2821755) | Cod sursa (job #933146) | Cod sursa (job #720647)
Cod sursa(job #720647)
#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;
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)
{
aux=1; exp=0;
while (n%pr[j]==0)
{
exp++;
aux*=pr[j];
n/=pr[j];
}
aux*=pr[j];
nr*=(exp+1);
sum*=(((aux-1)%modulo)*pow(pr[j]-1,modulo-2))%modulo;
}
if (n!=1)
{
nr*=2;
sum*=(((n*n-1)%modulo)*pow(n-1,modulo-2))%modulo;
}
printf("%lld %lld\n",nr,sum);
}
return 0;
}