#include <bits/stdc++.h>
using namespace std;
void executeTime() {
cerr << "Time Taken: " << (float)clock() / CLOCKS_PER_SEC << " secs";
}
int main() {
int n; cin >> n;
map<int, int> mp;
while (n % 2 == 0) {
mp[2]++;
n >>= 1;
}
for (int i = 3; i <= sqrt(n); i += 2) {
while (n % i == 0) {
mp[i] ++;
n /= i;
}
}
if (n > 1) {
mp[n]++;
}
for (auto &x : mp) {
cout << x.first << ' ' << x.second << endl;
}
executeTime();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGV4ZWN1dGVUaW1lKCkgewogICAgY2VyciA8PCAiVGltZSBUYWtlbjogIiA8PCAoZmxvYXQpY2xvY2soKSAvIENMT0NLU19QRVJfU0VDIDw8ICIgc2VjcyI7Cn0KCmludCBtYWluKCkgewoKICAgIGludCBuOyBjaW4gPj4gbjsKCiAgICBtYXA8aW50LCBpbnQ+IG1wOwoKICAgIHdoaWxlIChuICUgMiA9PSAwKSB7CiAgICAgICAgbXBbMl0rKzsKICAgICAgICBuID4+PSAxOwogICAgfQoKICAgIGZvciAoaW50IGkgPSAzOyBpIDw9IHNxcnQobik7IGkgKz0gMikgewogICAgICAgIHdoaWxlIChuICUgaSA9PSAwKSB7CiAgICAgICAgICAgIG1wW2ldICsrOwogICAgICAgICAgICBuIC89IGk7CiAgICAgICAgfQogICAgfQoKICAgIGlmIChuID4gMSkgewogICAgICAgIG1wW25dKys7CiAgICB9CgogICAgZm9yIChhdXRvICZ4IDogbXApIHsKICAgICAgICBjb3V0IDw8IHguZmlyc3QgPDwgJyAnIDw8IHguc2Vjb25kIDw8IGVuZGw7CiAgICB9CgoKCgogICAgZXhlY3V0ZVRpbWUoKTsKICAgIHJldHVybiAwOwp9