Pagini recente » Cod sursa (job #92056) | Istoria paginii runda/300saumalas/clasament | Cod sursa (job #2451151) | Cod sursa (job #1548633) | Cod sursa (job #1854329)
#include <cstdio>
using namespace std;
int t;
long long x;
int prim(int n)
{
int i;
for(i=2;i*i<=n;i++)
if(n%i==0) return 0;
return 1;
}
int main()
{
FILE *f=fopen("ssnd.in","r");
FILE *g=fopen("ssnd.out","w");
fscanf(f,"%d",&t);
int i;
for(i=1;i<=t;i++)
{
fscanf(f,"%d",&x);
if(x==1)
fprintf(g,"1 1\n");
else if(prim(x)==1)
fprintf(g,"2 %d\n",x+1);
else
{
int d,p,s=1,nr=1;
for(d=2;x>1;d++)
{
p=0;
int y=1;
while(x%d==0)
{
x=x/d;
y=y*d;
p++;
}
nr=nr*(p+1);
y=y*d;
s=s*((y-1)/(d-1));
}
fprintf(g,"%d %d\n",nr,s);
}
}
return 0;
}