Pagini recente » Cod sursa (job #290805) | Cod sursa (job #364151) | Cod sursa (job #2654640) | Cod sursa (job #2337067) | Cod sursa (job #1607737)
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
#define SIZE 1000003
int fr[SIZE];
int v[75000];
int main()
{
int t,s,con,c,d,x,conj,srt,cd,l,m,n,ga;
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d ",&t);
fr[2]=0;
int sqrtSize=sqrt(SIZE);
for(int i=2; i<=sqrtSize; i++)
{
if(fr[i]==0)
{
con=2;
d=i;
s=d*con;
while(s<=SIZE)
{
fr[s]=1;
s=d*con;
con++;
}
}
}
c=0;
int u=0;
for(int i=2; i<=1000000; i++)
{
if(fr[i]==0)
{
c++;
u++;
v[u]=i;
}
}
for(int i=1;i<=t;i++)
{
scanf("%d ",&x);
conj=1;
double b=x;
srt=sqrt(b);
s=1;
ga=0;
cd=1;
while(v[conj]<=srt)
{
con=0;
if(x%v[conj]==0)
{
ga=1;
while(x%v[conj]==0)
{
con++;
x=x/v[conj];
}
}
cd=cd*(con+1);
double j=v[conj];
double k=con+1;
n=pow(j,k)-1;
m=v[conj]-1;
l=n/m;
s=s*l;
conj++;
}
if(ga==0)
{
s=x+1;
cd=2;
printf("%d %d",cd,s);
printf("\n");
}
else
{
printf("%d %d\n",cd,s);
}
}
return 0;
}