#include <iostream>
void f(int n) {
std::cout << n << '=';
int m, c;
bool flag = false;
m = 2; c = 0;
for (; n > 1;) {
while (n % m == 0) {
c++;
n /= m;
}
if (c > 0) {
if (flag) std::cout << '*'; else flag = true;
std::cout << m;
if (c > 1)
std::cout << '^' << c;
}
m++;
c = 0;
}
std::cout << std::endl;
return;
}
int main() {
f(28);
f(2002);
f(216653);
std::cout << std::endl;
for (int n = 2; n <= 100; n++)
f(n);
return 0;
}
/* end */
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdm9pZCBmKGludCBuKSB7CiAgc3RkOjpjb3V0IDw8IG4gPDwgJz0nOwogIGludCBtLCBjOwogIGJvb2wgZmxhZyA9IGZhbHNlOwogIG0gPSAyOyBjID0gMDsKICBmb3IgKDsgbiA+IDE7KSB7CiAgICB3aGlsZSAobiAlIG0gPT0gMCkgewogICAgICBjKys7CiAgICAgIG4gLz0gbTsKICAgIH0KICAgIGlmIChjID4gMCkgewogICAgICBpZiAoZmxhZykgc3RkOjpjb3V0IDw8ICcqJzsgZWxzZSAgZmxhZyA9IHRydWU7CiAgICAgIHN0ZDo6Y291dCA8PCBtOwogICAgICBpZiAoYyA+IDEpCiAgICAgICAgc3RkOjpjb3V0IDw8ICdeJyA8PCBjOwogICAgfQogICAgbSsrOwogICAgYyA9IDA7CiAgfQogIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7CiAgcmV0dXJuOwp9CgppbnQgbWFpbigpIHsKICBmKDI4KTsKICBmKDIwMDIpOwogIGYoMjE2NjUzKTsKCiAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCiAgZm9yIChpbnQgbiA9IDI7IG4gPD0gMTAwOyBuKyspCiAgICBmKG4pOwogIHJldHVybiAwOwp9Ci8qIGVuZCAqLwo=