#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
using ll = long long;
const int NMAX = 100003, MOD = 9973;
bool c[NMAX];
vector <int> nrp;
void ciur()
{
nrp.push_back(2);
for (int i = 3; i * i <= NMAX; i += 2)
if (!c[i])
for (int j = i * i; j <= NMAX; j += (i << 1))
c[j] = 1;
for (int i = 3; i <= NMAX; i += 2)
if (!c[i])
nrp.push_back(i);
}
void desc(ll n, int &nr, ll &sum)
{
nr = 1, sum = 1;
for (int i = 0; i < nrp.size() and nrp[i] * nrp[i] <= n; i++)
if (n % nrp[i] == 0)
{
int aux = 0;
ll s = 1, p = 1;
while (n % nrp[i] == 0)
{
p *= nrp[i];
p %= MOD;
s += p;
s %= MOD;
n /= nrp[i];
aux++;
}
sum *= s;
sum %= MOD;
nr *= aux + 1;
}
if (n > 1)
{
nr <<= 1;
sum *= 1LL * (n * n - 1) / (n - 1);
sum %= MOD;
}
}
int main()
{
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");
ciur();
int t;
cin >> t;
while (t--)
{
ll n;
int nr;
ll sm;
cin >> n;
desc(n, nr, sm);
cout << nr << " " << sm << "\n";
}
}