Pagini recente » Cod sursa (job #1248337) | Cod sursa (job #2616994) | Cod sursa (job #1798238) | Cod sursa (job #732587) | Cod sursa (job #2456794)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream in ("ssnd.in");
ofstream out ("ssnd.out");
bool ciur[1000005];
int n,i,j,m,p[1000000],d,x;
int main()
{
in>>n;
for ( d = 2; d * d <= 1000000; d++ )
if ( ciur[d] == 0 )
for ( i = d * d; i <= 1000000; i = i + d )
ciur[i] = 1;
j=1;
for(i=2;i<=100000;i++)
{if(ciur[i]==0)p[j++]=i;
}
m=j-1;
int u,nd,s;
for(i=1;i<=n;i++)
{in>>x;
j=1;nd=1;s=1;
int q=x;
d=p[1];
while(d*d<=q)
{u=0;
while(x%d==0){x=x/d;u++;}
nd=nd*(u+1);
s=s*( (pow(d,(u+1))-1)/(d-1));
j++;d=p[j];
}
if(x!=1){out<<2<<" "<<x+1<<"\n";}
else{out<<nd<< " "<<s<<"\n";}
}
return 0;
}