#include <fstream>
using namespace std;
const int CONST = 9973, ZECE = 1000001;
bool v[ZECE];
long long v2[ZECE];
long long pow(long long x, long long y)
{
long long p;
if (y == 1)
return x;
p = pow(x, y/2);
if (y % 2 == 0)
return p * p;
else
return p * p * x;
}
int main()
{
long long t, n, s, card, div, c, i, k = 0, j;
ifstream infile ("ssnd.in");
ofstream outfile ("ssnd.out");
infile >> t;
for (i = 2; i < ZECE; i++)
v[i] = 1;
for (i = 2; i < ZECE; i++)
{
if (v[i] == 1)
{
v2[k] = i;
k++;
for (j = i * 2; j < ZECE; j += i)
v[j] = 0;
}
}
for (i = 0; i < t; i++)
{
infile >> n;
s = 1;
card = 1;
for (j = 0; v2[j] * v2[j] <= n; j++)
{
div = v2[j];
c = 0;
while (n % div == 0)
{
n /= div;
c++;
}
if (c > 0)
{
s *= (((pow(div, c + 1) - 1) / (div - 1)) % CONST);
s %= CONST;
card *= (c + 1);
}
}
if (n > 1)
{
s *= (((pow(n, 2) - 1) / (n - 1)) % CONST);
s %= CONST;
card *= 2;
}
outfile << card << " " << s << "\n";
}
outfile.close();
}