20.Hamming Problem
http://acm.fzu.edu.cn/problem.php?pid=1045
符合要求的自然数一定是由p1,p2,p3中的任意1到3个数的自身连乘。
import sys
import math
def hamming(p1,p2,p3,i):
if i==1:
return min(p1,p2,p3)
else:
ham=[]
scale=int(math.sqrt(i))
for x in range(0,scale):
for y in range(0,scale):
for z in range(0,scale):
if x+y+z>i:
break
h=(p1**x)*(p2**y)*(p3**z)
if not h in ham:
ham.append(h)
ham.sort()
return ham[i]
for read_in in sys.stdin.readlines():
p1,p2,p3,i = tuple([int(x) for x in read_in.rstrip().split(' ')])
print(hamming(p1,p2,p3,i))