Pagini recente » Cod sursa (job #462712) | Cod sursa (job #1388105) | Cod sursa (job #1528919) | Cod sursa (job #1259578) | Cod sursa (job #2371808)
#include <bits/stdc++.h>
using namespace std;
#define LMAX 1000000
bitset<LMAX+5> ciur;
int pr[LMAX+5];
void Gen_Prime(){
ciur[0]=ciur[1]=1;
for(int d=2;d*d<=LMAX;++d)
if(!ciur[d])
for(int i=d*d;i<=LMAX;i+=d)
ciur[i]=1;
for(int i=1;i<=LMAX;++i)
if(!ciur[i])
pr[++pr[0]]=i;
}
#define MOD 9973
void Descomp(long long x){
int ind=1;
long long nr=1,S=1;
while(1LL*pr[ind]*pr[ind]<=x){
int ex=0;
while(x%pr[ind]==0){
x/=pr[ind];
++ex;
}
if(ex>0){
nr=nr*(ex+1)%MOD;
long long S_aux=0,P=1;
for(int i=0;i<=ex;++i){
S_aux=(S_aux+P)%MOD;
P=P*pr[ind]%MOD;
}
S=S*S_aux%MOD;
}
++ind;
}
if(x>1){
nr=nr*2%MOD;
S=S*(1+x)%MOD;
}
printf("%lld %lld\n",nr,S);
}
int main(){
// freopen("ssnd.in","r",stdin);
// freopen("ssnd.out","w",stdout);
Gen_Prime();
int t;
scanf("%d",&t);
while(t--){
long long n;
scanf("%lld",&n);
Descomp(n);
}
return 0;
}