//============================================================================
// Name : uva_10622.cpp
// Author : Moaz Rashad
// Version :
// Copyright :
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <algorithm>
#include <math.h>
using namespace std;
int getValidPow(int i, long n, bool isNegative) {
int count = 0;
unsigned long long num = i;
while (num <= n) {
count++;
if (num == n) {
if (!isNegative || (isNegative && (count & 1)))
return count;
return -1;
}
num *= i;
}
return -1;
}
int getPerfectPower(long n, bool isNegative) { // sqrt(n)
unsigned long long i = 2;
int maxValidPow = 1;
for (; i * i <= n; i++) {
if (n % i == 0) {
maxValidPow = max(getValidPow(i, n, isNegative), maxValidPow);
}
}
return maxValidPow;
}
int main() {
long n;
while (cin >> n) {
if (n == 0)
break;
int res = getPerfectPower(abs(n), (n < 0));
cout << res << endl;
}
return 0;
}
Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIE5hbWUgICAgICAgIDogdXZhXzEwNjIyLmNwcAovLyBBdXRob3IgICAgICA6IE1vYXogUmFzaGFkCi8vIFZlcnNpb24gICAgIDoKLy8gQ29weXJpZ2h0ICAgOiAKLy8gRGVzY3JpcHRpb24gOiBIZWxsbyBXb3JsZCBpbiBDKyssIEFuc2ktc3R5bGUKLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxtYXRoLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZ2V0VmFsaWRQb3coaW50IGksIGxvbmcgbiwgYm9vbCBpc05lZ2F0aXZlKSB7CglpbnQgY291bnQgPSAwOwoJdW5zaWduZWQgbG9uZyBsb25nIG51bSA9IGk7Cgl3aGlsZSAobnVtIDw9IG4pIHsKCQljb3VudCsrOwoJCWlmIChudW0gPT0gbikgewoJCQlpZiAoIWlzTmVnYXRpdmUgfHwgKGlzTmVnYXRpdmUgJiYgKGNvdW50ICYgMSkpKQoJCQkJcmV0dXJuIGNvdW50OwoJCQlyZXR1cm4gLTE7CgkJfQoJCW51bSAqPSBpOwoJfQoJcmV0dXJuIC0xOwp9CmludCBnZXRQZXJmZWN0UG93ZXIobG9uZyBuLCBib29sIGlzTmVnYXRpdmUpIHsgLy8gc3FydChuKQoJdW5zaWduZWQgbG9uZyBsb25nIGkgPSAyOwoJaW50IG1heFZhbGlkUG93ID0gMTsKCWZvciAoOyBpICogaSA8PSBuOyBpKyspIHsKCQlpZiAobiAlIGkgPT0gMCkgewoJCQltYXhWYWxpZFBvdyA9IG1heChnZXRWYWxpZFBvdyhpLCBuLCBpc05lZ2F0aXZlKSwgbWF4VmFsaWRQb3cpOwoJCX0KCX0KCXJldHVybiBtYXhWYWxpZFBvdzsKfQoKaW50IG1haW4oKSB7Cglsb25nIG47Cgl3aGlsZSAoY2luID4+IG4pIHsKCQlpZiAobiA9PSAwKQoJCQlicmVhazsKCQlpbnQgcmVzID0gZ2V0UGVyZmVjdFBvd2VyKGFicyhuKSwgKG4gPCAwKSk7CgkJY291dCA8PCByZXMgPDwgZW5kbDsKCX0KCXJldHVybiAwOwp9Cg==