Pagini recente » Cod sursa (job #2120043) | Cod sursa (job #668259) | Cod sursa (job #2239530) | Cod sursa (job #1699195) | Cod sursa (job #614947)
Cod sursa(job #614947)
#include<stdio.h>
#include<string.h>
#include<math.h>
long lim1,e[1000000],s1,i,j,x,k,ni;
long long sfinal,prod,n;
void desc(long n)
{
long lim,d;
lim=sqrt(n)+1;
d=2;
while (n%2==0)
{
n=n/2;
e[d]++;
}
d=3;
while (d<lim&&n>1)
{
while (n%d==0)
{
n=n/d;
e[d]++;
}
d=d+2;
}
if (n>1)
{
d=n;
e[d]++;
}
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d",&x);
for (i=1;i<=x;i++)
{
scanf("%lld",&n);
lim1=sqrt(n)+1;
ni=n;
memset(e,0,sizeof(e));
desc(n);
sfinal=1;
prod=1;
for (j=1;j<=n;j++)
if (e[j]!=0)
{
prod*=(e[j]+1);
e[j]++;
s1=1;
for (k=1;k<=e[j];k++)
s1*=j;
s1--;
sfinal*=s1/(j-1);
}
if (sfinal==1)
{
sfinal=ni+1;
prod=2;
}
printf("%lld ",prod);
printf("%lld\n",sfinal);
}
}