Pagini recente » Cod sursa (job #816170) | Cod sursa (job #620546) | Cod sursa (job #2076159) | Cod sursa (job #1709845) | Cod sursa (job #1637536)
#include <cstdio>
int i,j,v[100005],k,t,val,nrd,p,ka;
long long n,init,suma,exp;
bool a[1000005];
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
a[1]=1;
for (i=1; i*i<=1000000; i++)
if (a[i]==0)
for (j=i; j<=1000000/i; j++)
a[i*j]=1;
for (i=1; i<=1000000; i++)
if (a[i]==0) v[++k]=i;
scanf("%d",&t);
for (val=1; val<=t; val++)
{
scanf("%lld",&n);
init=n;
i=1;
suma=1;
nrd=1;
while (n!=1 && 1ll*v[i]*v[i]<=init)
{
p=0;
if (n%(1ll*v[i])==0)
{
p=0;
while (n%(1ll*v[i])==0)
{
n=n/(1ll*v[i]);
p++;
}
nrd=nrd*(p+1);
}
exp=1;
for (ka=1; ka<=p+1; ka++) exp=exp*v[i];
suma=suma*((exp-1)/(v[i]-1));
i++;
}
if (n!=1)
{
nrd=nrd*2;
suma=suma*((n*n-1)/(n-1));
}
printf("%d %lld\n",nrd,suma);
}
return 0;
}