# your code goes hereimport math
import sys
from fractions import gcd
try:
primos = []
mcd = 0
temp = 0
n = 100000000
listaprimos = [True for i in range(n+1)]
p = 2
while (p * p <= n): #revisa hasta raiz de n
# If prime[p] is not changed, then it is a prime
if (listaprimos[p] == True):
# Update all multiples of p
for i in range(p * p, n+1, p):
listaprimos[i] = False
p += 1
# Guardar numeros primos
for p in range(2, n):
if listaprimos[p]:
primos.append(p)
#print p,
while(1):
n = int(input())
if(n == 0):
break
mcd = 0
i = 0
while (i < len(primos)):
#print "Pase por aqui"
#print "i: ",i
if(n%primos[i] == 0):
#print "pren: ",n
n = n // primos[i]
#print "postn: ",n
temp += 1
#print "temp: ",temp
else:
i += 1
if(temp != 0):
if(mcd == 0):
mcd = temp
temp = 0
else:
mcd = gcd(temp, mcd)
temp = 0
if(mcd == 0):
print(1)
else:
print(mcd)
except EOFError:
exit
IyB5b3VyIGNvZGUgZ29lcyBoZXJlaW1wb3J0IG1hdGgKaW1wb3J0IHN5cwpmcm9tIGZyYWN0aW9ucyBpbXBvcnQgZ2NkCgp0cnk6CgoJcHJpbW9zID0gW10KCW1jZCA9IDAKCXRlbXAgPSAwCgoJbiA9IDEwMDAwMDAwMAoJbGlzdGFwcmltb3MgPSBbVHJ1ZSBmb3IgaSBpbiByYW5nZShuKzEpXQoJcCA9IDIKCgl3aGlsZSAocCAqIHAgPD0gbik6ICNyZXZpc2EgaGFzdGEgcmFpeiBkZSBuCgoJICAgICMgSWYgcHJpbWVbcF0gaXMgbm90IGNoYW5nZWQsIHRoZW4gaXQgaXMgYSBwcmltZQoJICAgIGlmIChsaXN0YXByaW1vc1twXSA9PSBUcnVlKToKCgkgICAgICAgICMgVXBkYXRlIGFsbCBtdWx0aXBsZXMgb2YgcAoJICAgICAgICBmb3IgaSBpbiByYW5nZShwICogcCwgbisxLCBwKToKCSAgICAgICAgICAgIGxpc3RhcHJpbW9zW2ldID0gRmFsc2UKCSAgICBwICs9IDEKCgkjIEd1YXJkYXIgbnVtZXJvcyBwcmltb3MKCWZvciBwIGluIHJhbmdlKDIsIG4pOgoJICAgIGlmIGxpc3RhcHJpbW9zW3BdOgoJCQlwcmltb3MuYXBwZW5kKHApCgkJCSNwcmludCBwLAoKCXdoaWxlKDEpOgoKCQluID0gaW50KGlucHV0KCkpCgkJaWYobiA9PSAwKToKCQkJYnJlYWsKCQltY2QgPSAwCgoKCQlpID0gMAoKCSAJd2hpbGUgKGkgPCBsZW4ocHJpbW9zKSk6CgoJCQkjcHJpbnQgIlBhc2UgcG9yIGFxdWkiCgkJCSNwcmludCAiaTogIixpCgoJIAkJaWYobiVwcmltb3NbaV0gPT0gMCk6CgkJCQkjcHJpbnQgInByZW46ICIsbgoJIAkJCW4gPSBuIC8vIHByaW1vc1tpXQoKCQkJCSNwcmludCAicG9zdG46ICIsbgoJCQkJdGVtcCArPSAxCgkJCQkjcHJpbnQgInRlbXA6ICIsdGVtcAoKCQkJZWxzZToKCSAJCQlpICs9IDEKCQkJCWlmKHRlbXAgIT0gMCk6CgoJCSAJCQlpZihtY2QgPT0gMCk6CgoJCSAJCQkJbWNkID0gdGVtcAoJCQkJCQl0ZW1wID0gMAoKCQkgCQkJZWxzZToKCgkJIAkJCQltY2QgPSBnY2QodGVtcCwgbWNkKQoJCQkJCQl0ZW1wID0gMAoKCgkgCWlmKG1jZCA9PSAwKToKCgkgCQlwcmludCgxKQoKCSAJZWxzZToKCgkgCQlwcmludChtY2QpCgoKZXhjZXB0IEVPRkVycm9yOgoJZXhpdAo=