RosettaCodeData/Task/Pseudo-random-numbers-Middle-square-method/Ruby/pseudo-random-numbers-middle-square-method.rb
2023-07-01 13:44:08 -04:00

7 lines
213 B
Ruby

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)