Python
math
ProjectEuler

会社で少し盛り上がった Project Euler をやってみる 001

Problem 001

10未満の自然数のうち, 3 もしくは 5 の倍数になっているものは 3, 5, 6, 9 の4つがあり, これらの合計は 23 になる.

同じようにして, 1000 未満の 3 か 5 の倍数になっている数字の合計を求めよ.

Answer 001 (Python)

よりよい解答を@shiracamusさんからコメント欄に頂いていますのでそちらをご覧頂くのが良いと思います!

import numpy as np

class Problem1:

    NUM = 1000

    def main(self):
        data = np.array([i for i in range(1, self.NUM) if self.isMultipleOf3Or5(i)])
        print(data.sum())


    def isMultipleOf3Or5(self, num):
        if num % 3 == 0: return True
        if num % 5 == 0: return True
        return False


if __name__ == '__main__':
    p = Problem1()
    p.main()

(参考) Project Euler とは

Project Euler はプログラミングで数学の問題を解くサイトです。問題は600問以上あるので、勉強に使うのも良し、楽しむのも良しです。

サイトに登録すれば、解答を submit することができ、その場であっているか判定してくれます。

また、問題だけであれば、日本語に翻訳された Wiki もあるのでそちらを見ながらやると捗ると思います。

Project Euler(日本語訳)