RosettaCodeData/Task/Sailors-coconuts-and-a-monkey-problem/Ruby/sailors-coconuts-and-a-monkey-problem-1.rb
2023-07-01 13:44:08 -04:00

18 lines
385 B
Ruby

def valid?(sailor, nuts)
sailor.times do
return false if (nuts % sailor) != 1
nuts -= 1 + nuts / sailor
end
nuts > 0 and nuts % sailor == 0
end
[5,6].each do |sailor|
n = sailor
n += 1 until valid?(sailor, n)
puts "\n#{sailor} sailors => #{n} coconuts"
(sailor+1).times do
div, mod = n.divmod(sailor)
puts " #{[n, div, mod]}"
n -= 1 + div
end
end