Pagini recente » Cod sursa (job #2110628) | Cod sursa (job #2303129) | Cod sursa (job #2835114) | Cod sursa (job #388818) | Cod sursa (job #2409726)
#include <iostream>
#include <fstream>
#define MAXP 1000001
#define MP 78498
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
bool prim[MAXP];
int vp[MP];
void C(){
int npr=0;
prim[0]=prim[1]=1;
for(int i=2;i<=MAXP;i++){
if(prim[i]==0){
npr++;
vp[npr]=i;
for(int d=2;d*i<=MAXP;d++){
prim[i*d]=1;
}
}
}
}
void solve(int n){
int nrd=1,sd=1,auxn=n;
if(prim[auxn]==0){
fout<<2<<' '<<auxn+1;
return;
}
for(int i=1;vp[i]*vp[i]<=auxn;i++){
int e=0,pwvp=1;
while(n%vp[i]==0){
e++;
n/=vp[i];
pwvp*=vp[i];
}
pwvp*=vp[i];
nrd*=e+1;
sd*=(pwvp-1)/((double)vp[i]-1);
}
fout<<nrd<<' '<<sd<<'\n';
}
int main(){
C();
int t;
fin>>t;
for(int i=1;i<=t;i++){
int n;
fin>>n;
solve(n);
}
return 0;
}