#include <fstream>
#include <cmath>
using namespace std;
ifstream in ("ssnd.in");
ofstream out ("ssnd.out");
const int N = 1000000/2 + 1;
const int mod = 9901;
int t, nrDiv = 1; long long n, sDiv = 1;
bool p[N + 1]; int P[N + 1];
long long lgput(long long x, long long p)
{
if (p == 0) return 1;
else
{
long long a = lgput(x, p/2) % mod;
if (p & 1) return (((x * a) % mod) * a) % mod;
else return (a * a) % mod;
}
}
int main()
{
for (int i = 1; i < N/2; i++)
if (p[i] == 0)
for (int j = 3*i + 1; j < N/2; j += 2*i + 1)
p[j] = 1;
int nr = 0; P[++nr] = 1; P[++nr] = 2;
for (int i = 1; i < N; i++)
if (!p[i])
P[++nr] = 2*i + 1;
in >> t;
for (int i = 1; i <= t; i++)
{
in >> n;
if (n == 1) out << "1 1\n";
else if (n == 2) out << "2 3\n";
else
{
for (int j = 2; P[j] < n; j++)
if (n % P[j] == 0)
{
int exp = 0;
for (long long aux = n; aux % P[j] == 0; aux /= P[j]) exp++;
nrDiv *= (exp + 1);
sDiv *= (lgput(P[j], exp+1) - 1) / (P[j] - 1);
sDiv %= mod;
}
out << nrDiv << " " << sDiv << '\n';
nrDiv = sDiv = 1;
}
}
out.close(); return 0;
}