Pagini recente » Cod sursa (job #2030031) | Cod sursa (job #258436) | Cod sursa (job #566955) | Cod sursa (job #1906590) | Cod sursa (job #639028)
Cod sursa(job #639028)
#include <fstream>
#include <math.h>
using namespace std;
int main()
{
ifstream in ("ssnd.in");
ofstream out ("ssnd.out");
long long i, d, j, n, x, v[1001]={0}, exp ,nrdiv=1, sdiv=1, ok, t, aux;
in>>n;
for(i=1;i<=1000;i++){
ok=1;
x=i*2+1;
if(x==1||x%2==0) ok=0;
else{
for(d=3;d<x/2&&ok==1;d+=2)
if(x%d==0) ok=0;}
if(ok==1)
v[i]=1;}
v[0]=1;
for(i=1;i<=n;i++){
in>>x;
aux=x/2;
nrdiv=sdiv=1;
for(j=0;j*2+1<=aux;j++){
if(v[j]==0)
continue;
d=j*2+1;
if(j==0)d=2;
if(x%d!=0)
continue;
exp=1;
t=d;
while(x%d==0){
exp++;
x=x/d;
t=t*d;}
nrdiv=nrdiv*exp;
sdiv=sdiv*((t-1)/(d-1));
}
if(sdiv==1){
sdiv=x+1;
nrdiv=2;}
out<<nrdiv<<' '<<sdiv<<endl;
}
return 0;
}