Pagini recente » Cod sursa (job #542624) | Cod sursa (job #2176538) | Cod sursa (job #195679) | Cod sursa (job #743805) | Cod sursa (job #1260459)
#include <stdio.h>
using namespace std;
char ciur[1000001];
int main ()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
int n, i, x, prim=2, t, p, j;
while(prim*prim<=1000000)
{
for(i=2; i<=1000000/prim; i++)
ciur[prim*i]=1;
prim++;
while(ciur[prim]==1)
prim++;
}
int nrdiv, suma;
scanf("%d",&n);
for(j=1; j<=n; j++)
{
scanf("%d",&x);
nrdiv=1;
suma=1;
for(i=2; i*i<=x; i++)
if(ciur[i]==0)
{
p=0;
t=1;
while(x%i==0)
{
x/=i;
p++;
t*=i;
}
if(p!=0)
nrdiv=nrdiv*(p+1);
if(t!=1)
suma=suma*(t*i-1)/(i-1);
}
if(x!=1)
{
nrdiv=nrdiv*2;
suma=suma*(x*x-1)/(x-1);
}
printf("%d %d\n",nrdiv,suma);
}
return 0;
}