#include <fstream>
#include <vector>
#include <cstdio>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
const int SQRT = 1e6;
const int MOD = 9973;
long long N;
int d[SQRT + 5];
int nrp, primes[SQRT + 5];
long long nrDiv, sumaDiv;
void Erathostenes()
{
for(int i = 3; i * i <= SQRT; i += 2)
if(!d[i])
{
for(int j = i * i; j <= SQRT; j += 2 * i)
d[j] = 1;
}
primes[++nrp] = 2;
for(int i = 3; i <= SQRT; i += 2)
if(!d[i])
primes[++nrp] = i;
}
void Solve()
{
nrDiv = 1LL;
sumaDiv = 1LL;
fin >> N;
for(int i = 1; i <= nrp; i++)
if(1LL * primes[i] * primes[i] > N)
break;
else
{
int div = 1LL * primes[i];
int exp = 0;
long long aux = 1;
long long addSum = 1;
while(N % div == 0)
{
N /= div;
exp++;
aux *= div;
aux %= MOD;
addSum += aux;
addSum %= MOD;
}
nrDiv *= (exp + 1);
sumaDiv *= addSum;
nrDiv %= MOD;
sumaDiv %= MOD;
}
if(N != 1)
{
nrDiv = (nrDiv * 2) % MOD;
sumaDiv = (1LL * sumaDiv * (1 + N)) % MOD;
}
fout << nrDiv << ' ' << sumaDiv << '\n';
}
int main()
{
Erathostenes();
int t;
fin >> t;
while(t--)
Solve();
return 0;
}