ご祝儀の金額を素数にして割り切れなくするという洒落たことをした記事を見かけて触発された。
こちらにEnumerable#each_consとEnumerable#lazyを使ってそれっぽく書き直したものを投稿しました。
require 'prime'
class Prime
def nearest_prime? (n)
d = 0
loop do
p = n + d
break p if Prime.prime? p
p = n - d
break p if Prime.prime? p
d += 1
end
end
end
Prime.nearest_prime? 30000
=> 30011
Prime.nearest_prime? 50000
=> 49999
んーrubyぽくない