@jluke99,
Code:results = dict(zip(range(1000), [True]*1000))
for x in range(int(1000/6)):
tempList = [x*6, x*6+9, x*6+20, x*6+9+20, x*6+20+20, x*6+9+20+20]
for each in tempList:
if each in results:
del results[each]
for number in results.keys():
print(number)
This python script proves that it is in fact 43. I'm assuming the highest possible number is less than 1000, it works by starting with a list of numbers from 0-999 and eliminating them if they are a multiple of 6 or if they are 9, 20, 29, 40 or 49 away from a multiple of 6. The reason I use those numbers is that they are made up of 0 or 1 9 and 0 to 2 20's. This is because 2 9's is 18, which is only 3 (18/6 = 3) iterations away and 3 20's is 60, only 10 iterations away and therefore already accounted for by the sequence of multiples of 6's.