-- / --
--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

12 / 31
Tue

大晦日だということをすっかり忘れていた Ziphil です。

突然ですが、 Project Euler に登録してみました。 せっかくなので、 微妙な空き時間があるときは、 これの問題を解いてみることにしました。 ということで、 第 1 問。

3 または 5 の倍数である、 10 未満の全ての自然数を並べると、 3, 5, 6, 9 を得る。 これらの倍数の総和は 23 である。 1000 未満の数であって、 3 または 5 の倍数であるもの全ての和を求めよ。

1 問目ということもあって、 非常に簡単。 Ruby で書いてみる。

def project_euler_1
  puts (1...1000).select{|i| (i % 3) * (i % 5) == 0}.inject(&:+)
end

1 以上 1000 未満の Range インスタンスを作って、 3 の倍数または 5 の倍数のものだけを抽出して、 和をとるだけです。 3 でわった余りと 5 でわった余りの積が 0 としているのは、 ただのオシャレです。 オシャレしたい年頃なんです。 意味分かりません。 実行してみます。

project_euler_1  # => 233168

ということで、 記念すべき最初の解答は 233168 ですね。 Project Euler 第 1 問でした。

スポンサーサイト

comment ×0
コメント
管理者にだけ表示を許可する
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。