Pagini recente » Cod sursa (job #2975459) | Cod sursa (job #1562112) | Cod sursa (job #3180794) | Cod sursa (job #943378) | Cod sursa (job #1376451)
#include<cstdio>
#define nrmax 1000000000000
using namespace std;
char ciur[1000001];
void ciurr()
{
int d,i;
d=2;
while(d*d<=nrmax)
{
for(i=2;i*i<=nrmax;i++)
{
ciur[d*i]=1;
}
d++;
while(ciur[d]==1)
{
d++;
}
}
}
int suma(int nr)
{
int sumdiv,i,f,p;
sumdiv=1;
for(i=2;i<=nr;i++)
{
if(ciur[i]==0)
{
f=1;
p=0;
while(nr%i==0)
{
nr=nr/i;
p++;
f=f*i;
}
if(p!=0)
{
f=f*i-1;
sumdiv*=(f/(i-1));
}
}
}
if(nr!=1)
{
sumdiv*=(nr*nr-1)/(nr-1);
}
return sumdiv;
}
int nrdiv(int nr)
{
int d=2,p,tau=1;
while(nr>1)
{
p=0;
while(nr%d==0)
{
nr=nr/d;
p++;
}
tau*=(p+1);
d++;
}
return tau;
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
int n,i,nr,sdiv,nd;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&nr);
nd=nrdiv(nr);
sdiv=suma(nr);
printf("%d %d\n",nd,sdiv);
}
return 0;
}