RosettaCodeData/Task/Pseudo-random-numbers-Middle-square-method/Ruby/pseudo-random-numbers-middle-square-method.rb

8 lines
213 B
Ruby
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
def middle_square (seed)
return to_enum(__method__, seed) unless block_given?
s = seed.digits.size
loop { yield seed = (seed*seed).to_s.rjust(s*2, "0")[s/2, s].to_i }
end
puts middle_square(675248).take(5)