#include <iostream>
#include <cstdio>
#define MOD 9973
//#define MOD 9901
using namespace std;
FILE *f, *g;
bool p[1000001];
long long v[80001];
int k;
int n;
void euclid(long long a, long long b, long long &x, long long &y, long long &d)
{
if(b == 0)
{
x = 1;
y = 0;
d = a;
return;
}
long long xx, yy, q = a / b;
euclid(b, a % b, xx, yy, d);
x = yy;
y = xx - yy * q;
}
void ciur()
{
int n = 1000000;
int i, j;
p[0] = p[1] = 1;
for(i = 4; i <= n; i += 2)
p[i] = 1;
for(i = 3; i * i <= n; i += 2)
if(p[i] == 0)
for(j = i * i; j <= n; j += i * 2)
p[j] = 1;
v[++ k] = 2;
for(i = 3; i <= n; i += 2)
{
if(p[i] == 0)
v[++ k] = i;
}
//printf("%d\n", k);
}
void poz(long long &x, long long n)
{
if(x < 0)
{
/* if(-x < n)
x += n;
else
if(-x >= n)
x += (((-x) / n) + (((-x) % n) != 0)) * n;*/
x = n + x % n;
}
}
int power(int a, int b)
{
int i, p = 1;
a = a % MOD;
for(i = 1; i <= b; i ++)
{
p *= a;
p %= MOD;
}
return p;
}
void sumdiv(long long nr)
{
long long sum;
long long div, p, d, x, y = 1;
long long i, rez = 0, j;
long long cnr = nr;
sum = 1;
div = 1;
p = 0;
d = 1;
y = 1;
while(d <= k && v[d] * v[d] * 1LL <= nr)
{
p = 0;
while(nr % v[d] == 0)
{
nr /= v[d];
p ++;
}
if(p != 0)
{
rez = 0;
y = (v[d] - 1);
y %= MOD;
euclid(y, MOD, rez, i, j);
poz(rez, MOD);
div *= (p + 1);
x = (power(v[d], p + 1) - 1) ;
sum *= x;
sum %= MOD;
sum = sum * rez % MOD;
}
d ++;
}
if(nr > 1 )
{
if(nr != MOD)
{
rez = 0;
y = (nr - 1);
y %= MOD;
euclid(y, MOD, rez, i, j);
poz(rez, MOD);
sum *= (((nr % MOD) * (nr % MOD) - 1) % MOD);
sum %= MOD;
sum = sum * rez % MOD;
}
div *= 2;
}
fprintf(g, "%lld %lld\n", div, sum );
}
void readFile()
{
f = fopen("ssnd.in", "r");
g = fopen("ssnd.out", "w");
int i;
long long nr;
fscanf(f, "%d", &n);
for(i = 1; i <= n; i ++)
{
fscanf(f, "%lld", &nr);
sumdiv(nr);
}
fclose(f);
fclose(g);
}
int main()
{
ciur();
readFile();
return 0;
}