#include<bits/stdc++.h>
using namespace std;
#define faster() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int nt[10000035];
int snt[10000035];
// Hàm này sàng số nguyên tố
void sang(){
nt[0]=1;
nt[1]=1;
for (int i=2;i<=sqrt(10000030);i++){
if (nt[i]==0)
for (int j=i*i;j<=10000030;j+=i)
nt[j]=1;
}
}
int dem=0;
// Hàm này để lưu số nguyên tố vào trong 1 mảng
int lietkent(){
for (int i=2;i<=10000030;i++)
if (nt[i]==0) snt[++dem]=i;
}
// Hàm này phân tích 1 số ra thừa số nguyên tố
void pt(long long n){
int d=0;
int i=snt[++d];
while (i<=sqrt(n)){
if (n%i==0){
int d=0;
while (n%i==0){
d++;
n/=i;
}
cout << i << " " << d << "\n";
}
i=snt[++d];
}
if (n>1) cout << n << " " << 1 << "\n";
cout << "\n";
}
void solve(){
long long n;
cin >> n;
pt(n);
}
int main(){
faster();
sang();
lietkent();
int t;
cin >> t;
while (t--) solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBmYXN0ZXIoKSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKE5VTEwpO2NvdXQudGllKE5VTEwpOwppbnQgbnRbMTAwMDAwMzVdOwppbnQgc250WzEwMDAwMDM1XTsKLy8gSMOgbSBuw6B5IHPDoG5nIHPhu5Egbmd1ecOqbiB04buRCnZvaWQgc2FuZygpewoJbnRbMF09MTsKCW50WzFdPTE7Cglmb3IgKGludCBpPTI7aTw9c3FydCgxMDAwMDAzMCk7aSsrKXsKCQlpZiAobnRbaV09PTApCgkJICAgIGZvciAoaW50IGo9aSppO2o8PTEwMDAwMDMwO2orPWkpCgkJICAgICAgICBudFtqXT0xOwoJfQp9CmludCBkZW09MDsKLy8gSMOgbSBuw6B5IMSR4buDIGzGsHUgc+G7kSBuZ3V5w6puIHThu5EgdsOgbyB0cm9uZyAxIG3huqNuZwppbnQgbGlldGtlbnQoKXsKCWZvciAoaW50IGk9MjtpPD0xMDAwMDAzMDtpKyspCgkgICAgaWYgKG50W2ldPT0wKSBzbnRbKytkZW1dPWk7CgkJCn0KLy8gSMOgbSBuw6B5IHBow6JuIHTDrWNoIDEgc+G7kSByYSB0aOG7q2Egc+G7kSBuZ3V5w6puIHThu5EKdm9pZCBwdChsb25nIGxvbmcgbil7CglpbnQgZD0wOwoJaW50IGk9c250WysrZF07Cgl3aGlsZSAoaTw9c3FydChuKSl7CgkJaWYgKG4laT09MCl7CgkJCWludCBkPTA7CgkJCXdoaWxlIChuJWk9PTApewoJCQkJZCsrOwoJCQkJbi89aTsKCQkJfQoJCQljb3V0IDw8IGkgPDwgIiAiIDw8IGQgPDwgIlxuIjsKCQl9CgkJaT1zbnRbKytkXTsKCX0KCWlmIChuPjEpIGNvdXQgPDwgbiA8PCAiICIgPDwgMSA8PCAiXG4iOwoJY291dCA8PCAiXG4iOwp9CnZvaWQgc29sdmUoKXsKCWxvbmcgbG9uZyBuOwoJY2luID4+IG47CglwdChuKTsKfQppbnQgbWFpbigpewoJZmFzdGVyKCk7CglzYW5nKCk7CglsaWV0a2VudCgpOwoJaW50IHQ7CgljaW4gPj4gdDsKCXdoaWxlICh0LS0pIHNvbHZlKCk7CQp9