Pagini recente » Cod sursa (job #416160) | Cod sursa (job #2170907) | Cod sursa (job #1895070) | Cod sursa (job #488823) | Cod sursa (job #862995)
Cod sursa(job #862995)
#include <stdio.h>
#include <math.h>
using namespace std;
FILE *f=fopen("ssnd.in","r");
FILE *g=fopen("ssnd.out","w");
int i,t,j,n,aux,p,d,s,nd,v[1000000];
int ciur()
{
for(int i=1;i<=1000000;i++)
v[i]=1;
for(int i=2;i<1000000;i++)
if(v[i]==1)
for(int j=i+i;j<=1000000;j+=i)
v[j]=0;
return 0;
}
int main()
{
ciur();
fscanf(f,"%d",&t);
for(i=1;i<=t;i++)
{
fscanf(f,"%d",&n);
nd=1;
s=1;
aux=n;
for(j=2;j<=sqrt(n);j++)
{
p=1;
d=0;
if(v[j]==1)
while(aux%j==0)
{
aux=aux/j;
p=p*j;
d+=1;
}
nd=nd*(d+1);
s=s*(p*j-1)/(j-1);
}
if(nd!=1) fprintf(g,"%d %d\n",nd,s);
else fprintf(g,"2 %d",n+1);
}
fclose(g);
return 0;
}