Pagini recente » Cod sursa (job #74205) | Cod sursa (job #2194113) | Cod sursa (job #2627217) | Cod sursa (job #434131) | Cod sursa (job #700673)
Cod sursa(job #700673)
#include<stdio.h>
#define ndmax 80000
#define dmax 1000005
#define modulo 9973
long long d[ndmax], i, j, n, sd, p, nd, x, ii, vmax, put, sp, npr, unu, doi;
bool pr[dmax];
void ciur()
{
pr[1]=1;
for (i=2;i*i<=vmax;i++)
if (!pr[i])
{
d[++npr]=i;
for (j=2;(j*i)<=vmax/(j*i);j++)
pr[i*j]=1;
}
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
vmax=1000000; vmax*=vmax; unu=1; doi=2;
ciur();
scanf("%ld",&n);
for (ii=1;ii<=n;ii++)
{
scanf("%lld",&x);
nd=sd=1;
for (i=1;i<=npr;i++)
{
p=0;put=1;sp=0;
while (x%d[i]==0)
{ p++; put=(put*d[i])%modulo; x=x/d[i]; sp=(sp+put)%modulo; }
sd=sd*(sp+unu)%modulo;
nd*=(p+unu);
if (d[i]*d[i]>x)
break;
}
if (x>1)
{ sd=sd*(x+unu)%modulo; nd*=doi; }
printf("%lld",nd);
printf(" %lld\n",sd);
}
return 0;
}