#include <bits/stdc++.h>
using namespace std;
#define MAX 100000
int t;
long long int n;
bool prime[MAX+1];
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
void ciur(int n){
for(int i=2;i<=n;i++) prime[i]=true;
for(int i=2;i*i<=n;i++)
if(prime[i]) for(int j=i*i;j<=n;j+=i) prime[j]=false;
}
void nrdivs(long long int n){
int d=2,cnt=1;
long long int s=1;
while(n>1){
int p=0;
while(n%d==0){p++;n/=d;}
cnt*=(p+1);
s*=(pow(d,p+1)-1)/(d-1);
d++;
if(d*d>=n) d=n;
}
fout<<cnt<<" "<<s%9973<<'\n';
}
void Read(){
fin>>t;
ciur(MAX);
while(t--){fin>>n; if(!prime[n])nrdivs(n);else fout<<2<<" "<<n;}
}
int main()
{ Read();
return 0;
}