「Project Euler」は数学やプログラミングに関する問題がたくさん集められた問題集サイトです。
出題される問題は簡単なものから難しいものまでバリエーション豊富。実際に問題を手を動かして解いていくうちに、アルゴリズムやプログラミングに関する知識が身についていくことでしょう。
3と5の倍数
例えば一番簡単な問題「Multiples of 3 and 5」は以下の通り。
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000.
「10未満の自然数の中で3または5の倍数をリストアップすると、3,5,6,9が見つかる。それらの合計は23になる。1000未満の3と5の倍数の合計を求めよ」
要するに1000未満の数の中に含まれる3または5の倍数の合計を求めれば良いようです。数学的に最適ではないかもしれませんが、プログラマならば自然に次のようなソースコードが頭に浮かぶのではないでしょうか(Rubyです)。
def mysum(limit)
sum = 0
1.upto(limit) do |i|
if i % 3 == 0 || i % 5 == 0
sum += i
end
end
sum
end
puts mysum(9) # => 23
puts mysum(999) # => 秘密
答えがもとまったら回答をサイトに入力し、以下の画像が表示されれば正解です!!
正解すると問題に対するフォーラムを表示することができ、千差万別な解答例を確認することができます。プログラミング的な解き方から数学的な解法までいろいろあることが分かります。
進捗状況は保存されるので今後の励みにもなります。
まとめ
問題が英語で出題するので厳密な意味を読み取るのが大変…と思って検索してみると「日本語Wikiサイト」で問題が日本語に翻訳されていました。数学やプログラミングに自信があるけど英語はちょっと…という方は参考になると思います。