#include<iostream>
using namespace std;
int main(){
int n; scanf("%d", &n);
while(n--){
int x; scanf("%d", &x);
int ans = 0;
while(x % 2 == 0){ // 先对 2 的次方进行特判
x /= 2;
ans++;
}
if(ans) printf("%d %d\n", 2, ans);
for(int i = 3; i * i <= x; i += 2){ // 后续只需遍历基数的因子,减少遍历次数
ans = 0;
while(x % i == 0){
x /= i;
ans++;
}
if(ans) printf("%d %d\n", i, ans);
}
if(x > 1) printf("%d %d\n", x, 1);
printf("\n");
}
return 0;
}