import itertools
record = 0
for n in range(1,300): # 209
print("n",n)
for a in range(2,n):
# print("\ta",a)
for b in range(2,n-a):
for c in range(2,n-a-b):
sols = 0
for x in range(n // a + 1):
for y in range((n - a * x)// b + 1):
for z in range((n - a * x - b * y) // c + 1):
if a*x+b*y+c*z == n:
sols += 1
x0 = x
y0 = y
z0 = z
if sols == 1 and x0>1 and y0>1 and z0>1:
# print("\tSolution (",a,b,c,")",n,"is",x0,y0,z0)
done = False
solratio = 1 #how much of the d-loop do we need to reuse? If all of it then we fail
for d in range(2,n):
if not done:
for e in range(d): # using part of the d-loop again
if not done:
for f in range(a+b-d+1): # d + f <= a + b
if not done:
if e + f <= n:
m = n - e - f
# for m in range(n):
# if n == m + e + f:
sols = 0
for w in range(m // d + 1):
for z in range(m // c + 1):
if d*w+c*z == m:
sols += 1
z1 = z
w1 = w
if sols == 1 and z1 == z0:
# print("\t\t But:",d,e,f,"(",w1,z1,")")
done = True
if e/float(d) < solratio:
solratio = e/float(d)
if solratio > record:
print("New record",solratio,"for",a,b,c,n)
record = solratio
if not done:
print("Eureka")
exit()