Pagini recente » Cod sursa (job #1167824) | Cod sursa (job #1538966) | Cod sursa (job #1528364) | Cod sursa (job #380979) | Cod sursa (job #1662098)
#include <fstream>
using namespace std;
long long prim[15000];
char c[1000005];
void ciur();
void solve(long long);
long long n,x;
int main(){
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%lld",&n);
ciur();
for (long long i=1;i<=n;i++){
scanf("%lld",&x);
solve(x);
}
}
void solve(long long x){
long long e=0,d=1;
long long nr=1,s=1;
while (prim[d]*prim[d]<=x){
long long p=1;
while (x%prim[d]==0){
x/=prim[d];
p*=prim[d];
e++;
}
if (e){
nr*=e+1;
s*=(p*prim[d]-1)/(prim[d]-1);
}
d++;
}
if (x>1){
nr*=2;
s*=(x*x-1)/(x-1);
}
printf("%lld %lld\n",nr,s);
}
void ciur(){
for (long long i=2;i<=1000000;i++){
if (!c[i]){
prim[++prim[0]]=i;
}
for (long long j=i*i;j<=1000000;j+=i){
c[j]=1;
}
}
}