Pagini recente » Cod sursa (job #3138123) | Cod sursa (job #460132) | Cod sursa (job #2753881) | Cod sursa (job #2047704) | Cod sursa (job #720624)
Cod sursa(job #720624)
#include<cstdio>
#define NMax 1000000
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]=i;
for (j=i+i; j<=NMax; j+=i)
bif[j]=1;
}
}
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)/(pr[j]-1);
}
if (n!=1)
{
nr*=2;
sum*=(n*n-1)/(n-1);
}
printf("%lld %lld\n",nr,sum);
}
return 0;
}