IonicWind Software

Creative Basic => Console Programs => Topic started by: GWS on September 09, 2015, 04:13:25 AM

Title: Puzzlet #35
Post by: GWS on September 09, 2015, 04:13:25 AM
Hi,

Are you ready for another puzzle from Dave Ellis's collection ..  :)

This one is to find an integer which can be divided by any n from 1 to 16, and always leave the
remainder n - 1.


' Puzzlet #035.
' Find an integer which can be divided by
' any n from 1 to 16 and always leave the
' remainder n - 1.
' By Dave Ellis. (slightly modified GWS)

def flag1, flag2: int
def numerator, denominator, remainder: int

numerator = 31
flag1 = 0
openconsole
print "Searching ..."

do
' outer loop controls numerator
denominator = 16
flag2 = 0
do
' inner loop controls denominator
remainder = numerator % denominator
if (remainder = denominator - 1)
denominator = denominator - 1
else
flag2 = 1
endif
until (flag2 | denominator < 2)
if (denominator < 2)
flag1 = 1
else
numerator = numerator + 16
endif
until flag1

PrintResult

print: print "Press any key to exit ..."
do: until inkey$ <> ""
closeconsole
end

sub PrintResult
' pretty printer
def i: int
print
for i = 1 to 16
print ltrim$(str$(numerator)) + "/",
print i,
if (i < 10)
print " ",
endif
print "= ",
print using ("######", int(numerator/i)),
print " remainder ",
print using ("##",i - 1)
next i

return



Best wishes, :)

Graham