#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
void factorize(ll n) {
for (ll i = 2; i * i <= n; i++) {
if (n % i == 0) {
int e = 0;
while (n % i == 0) n /= i, e++;
cout << i << '^' << e << ' ';
}
}
if (n > 1) cout << n << '^' << 1;
cout << '\n';
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
ll n;
while (cin >> n) {
if (n == 0) break;
factorize(n);
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOyAgCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsgIAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAgCgpjb25zdCBpbnQgSU5GID0gMWU5OyAgCmNvbnN0IGxsIExJTkYgPSAxZTE4OyAgCgp2b2lkIGZhY3Rvcml6ZShsbCBuKSB7Cglmb3IgKGxsIGkgPSAyOyBpICogaSA8PSBuOyBpKyspIHsKCQlpZiAobiAlIGkgPT0gMCkgewoJCQlpbnQgZSA9IDA7IAoJCQl3aGlsZSAobiAlIGkgPT0gMCkgbiAvPSBpLCBlKys7ICAKCQkJY291dCA8PCBpIDw8ICdeJyA8PCBlIDw8ICcgJzsgICAKCQl9Cgl9CglpZiAobiA+IDEpIGNvdXQgPDwgbiA8PCAnXicgPDwgMTsgCgljb3V0IDw8ICdcbic7IAp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyAgCQoJbGwgbjsgIAoJd2hpbGUgKGNpbiA+PiBuKSB7CgkJaWYgKG4gPT0gMCkgYnJlYWs7IAoJCWZhY3Rvcml6ZShuKTsgCgl9Cn0=