15 lines
355 B
Ruby
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
|