Pagini recente » Cod sursa (job #234383) | Cod sursa (job #1136327) | Cod sursa (job #2668720) | Cod sursa (job #1396493) | Cod sursa (job #700703)
Cod sursa(job #700703)
#include<stdio.h>
#define ndmax 80000
#define dmax 1000005
#define modulo 9973
long d[ndmax], n, i, j, sd, p, nd, ii, put, sp, npr;
long long vmax, x;
bool pr[dmax];
void ciur()
{
pr[1]=1;
for (i=2;i<=dmax;i++)
if (!pr[i])
{
d[++npr]=i;
for (j=2;(j*i)<=dmax;j++)
pr[i*j]=1;
}
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
vmax=1000000; vmax*=vmax;
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+1)%modulo;
nd*=(p+1);
if (d[i]*d[i]>x)
break;
}
if (x>1)
{ sd=sd*(x+1)%modulo; nd*=2; }
printf("%lld",nd);
printf(" %lld\n",sd);
}
return 0;
}