RosettaCodeData/Task/Curzon-numbers/Ruby/curzon-numbers.rb

15 lines
355 B
Ruby

def curzons(k)
Enumerator.new do |y|
(1..).each do |n|
r = k * n
y << n if k.pow(n, r + 1) == r
end
end
end
[2,4,6,8,10].each do |base|
puts "Curzon numbers with k = #{base}:"
puts curzons(base).take(50).join(", ")
puts "Thousandth Curzon with k = #{base}: #{curzons(base).find.each.with_index(1){|_,i| i == 1000} }",""
end