[ project euler ] problem 1
友人の havana に Project Euler なるものを紹介されたのはかなり前のこと。
いろいろあってしばらくコード書いてなかったんだけど、これならいろいろと楽しめそうだなと思って初めて見ることにしました。
Problem 1 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.
正当な解法だと等差数列の和を求めるのでしょう。が、しかし、等差数列の和を利用すれば解けることはわかるものの、肝心な数式が出てこない・・・
そこで集合 { x: (3 * i), (0 < i < 1000)} と集合 { y: (5 * j), (0 < j < 1000)} の和集合に含まれる要素の和として計算しました。
sum(
set.union(
set([3 * multiprier for multiprier in range(1, ((1000-1) / 3) + 1)]),
set([5 * multiprier for multiprier in range(1, ((1000-1) / 5) + 1)])
)
)
| 固定リンク
この記事へのコメントは終了しました。
コメント