Pagini recente » Cod sursa (job #2369236) | Cod sursa (job #1852985) | Cod sursa (job #358070) | Cod sursa (job #2665270) | Cod sursa (job #700647)
Cod sursa(job #700647)
#include<stdio.h>
#define ndmax 80000
#define dmax 1000005
long long d[ndmax], i, j, n, sd, p, nd, x, ii, vmax, put, sp, npr;
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;
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*=d[i]; x=x/d[i]; sp+=put; }
sd*=(sp+1);
nd*=(p+1);
if (d[i]*d[i]>x)
break;
}
if (x>1)
{ sd*=(x+1); nd*=2; }
printf("%lld",nd);
printf(" %lld\n",sd);
}
return 0;
}