#include <bits/stdc++.h>
using namespace std;
void executeTime() {
cerr << "Time Taken: " << (float)clock() / CLOCKS_PER_SEC << " secs";
}
int main() {
int n; cin >> n;
vector<int> spf(n + 1, 1);
spf[0] = 0;
for (int i = 0; i <= n; i++) {
spf[i] = i;
}
for (int i = 2; i <= sqrt(n); i++) {
for (int j = i * i; j <= n; j += i) {
if (spf[j] == j) spf[j] = i;
}
}
vector<int> v(4);
auto print_prime_factorisation = [&](int n) {
map<int, int> mp;
while (n > 1) {
mp[spf[n]] ++;
n /= spf[n];
}
for (auto &x : mp) {
cout << x.first << ' ' << x.second << endl;
}
cout << endl;
};
for (auto &x : v) {
cin >> x;
print_prime_factorisation(x);
}
executeTime();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGV4ZWN1dGVUaW1lKCkgewogICAgY2VyciA8PCAiVGltZSBUYWtlbjogIiA8PCAoZmxvYXQpY2xvY2soKSAvIENMT0NLU19QRVJfU0VDIDw8ICIgc2VjcyI7Cn0KCmludCBtYWluKCkgewoKICAgIGludCBuOyBjaW4gPj4gbjsKCiAgICB2ZWN0b3I8aW50PiBzcGYobiArIDEsIDEpOwoKICAgIHNwZlswXSA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8PSBuOyBpKyspIHsKICAgICAgICBzcGZbaV0gPSBpOwogICAgfQoKCiAgICBmb3IgKGludCBpID0gMjsgaSA8PSBzcXJ0KG4pOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gaSAqIGk7IGogPD0gbjsgaiArPSBpKSB7CiAgICAgICAgICAgIGlmIChzcGZbal0gPT0gaikgc3BmW2pdID0gaTsKICAgICAgICB9CiAgICB9CgogICAgdmVjdG9yPGludD4gdig0KTsKCiAgICBhdXRvIHByaW50X3ByaW1lX2ZhY3RvcmlzYXRpb24gPSBbJl0oaW50IG4pIHsKICAgICAgICBtYXA8aW50LCBpbnQ+IG1wOwoKICAgICAgICB3aGlsZSAobiA+IDEpIHsKICAgICAgICAgICAgbXBbc3BmW25dXSArKzsKICAgICAgICAgICAgbiAvPSBzcGZbbl07CiAgICAgICAgfQoKICAgICAgICBmb3IgKGF1dG8gJnggOiBtcCkgewogICAgICAgICAgICBjb3V0IDw8IHguZmlyc3QgPDwgJyAnIDw8IHguc2Vjb25kIDw8IGVuZGw7CiAgICAgICAgfQoKICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICB9OwoKICAgIGZvciAoYXV0byAmeCA6IHYpIHsKICAgICAgICBjaW4gPj4geDsKICAgICAgICBwcmludF9wcmltZV9mYWN0b3Jpc2F0aW9uKHgpOwogICAgfQoKCgoKICAgIGV4ZWN1dGVUaW1lKCk7CiAgICByZXR1cm4gMDsKfQ==