Pagini recente » Cod sursa (job #1572730) | Cod sursa (job #3288115) | Cod sursa (job #118678) | Cod sursa (job #2973221) | Cod sursa (job #1909537)
#include<cstdio>
#include<cmath>
using namespace std;
int i,n,x;
int nr(int x)
{
int y=x,p=0,d,nr=1;
while(y%2==0)
{
y=y/2;
p++;
}
nr=nr*(p+1);
d=3;
while(y>1)
{
p=0;
while(y%d==0)
{
y=y/d;
p++;
}
nr=nr*(p+1);
d=d+2;
}
return nr;
}
int suma(int x)
{
int s=1,p=0,d,y=x;
while(y%2==0)
{
p++;
y=y/2;
}
if(p>0)
s=s*(pow(2,p+1)-1);
d=3;
while(y>1)
{
p=0;
while(y%d==0)
{
p++;
y=y/d;
}
if(p>0)
s=s*(pow(d,p+1)-1)/(d-1);
d=d+2;
}
return s;
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
printf("%d %d\n",nr(x),suma(x));
}
return 0;
}