Edited at

合成数列の和アドベントカレンダー Ruby 編

合成数列の和アドベントカレンダー Advent Calendar 2018 の 1 日目です


ルール


  • 入力として正の整数 N を与えたら 4 から始まる 合成数 の数列の 1 番目から N 番目からの合計を出力してください

  • N は最大で 100 とします


プログラム(Ruby)

require "prime"

without_prime = Enumerator.new do |y|
a = 1
loop do
a += 1
loop { a.prime? ? a += 1 : break }
y << a
end
end

puts without_prime.take(ARGV.first.to_i).sum


出力例

$ ruby test.rb 2

10
$ ruby test.rb 4
27
$ ruby test.rb 10
112
$ ruby test.rb 100
7059


メモ

この問題は ずんだ問題 の番外編です