
Untitled
By: a guest on
Apr 18th, 2012 | syntax:
None | size: 0.74 KB | hits: 7 | expires: Never
X = 233
Y = 456
Z = 787
TARGET = 10000000000
def gcd(x, y): # x >= y
mod = x%y
if mod == 0: return y
return gcd(y, x%y)
def lcm(x, y):
g = gcd(max(x,y), min(x,y))
return x*y / g
MAX_X = min(lcm(Y, X)/X, lcm(Z, X)/X)
MAX_Y = lcm(Y, Z)/Y
def solve():
tgt = TARGET
_X = X
_Y = Y
_Z = Z
min_result = tgt
for num_xy in xrange(MAX_X + MAX_Y - 1):
for x in xrange(num_xy):
y = num_xy - x
if (tgt - y*_Y - x*_X) % Z == 0:
z = (tgt - y*_Y - x*_X) / Z
result = x+y+z
if result < min_result:
print x, y, z, x*_X+y*_Y+z*_Z
min_result = result
break
return min_result
print solve()