Python
math
ProjectEuler

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

Problem 006

最初の10個の自然数について, その二乗の和は,
1**2 + 2**2 + ... + 10**2 = 385
最初の10個の自然数について, その和の二乗は,
(1 + 2 + ... + 10)**2 = 3025
これらの数の差は 3025 - 385 = 2640 となる.
同様にして, 最初の100個の自然数について二乗の和と和の二乗の差を求めよ.


Answer 006 (Python)

class Problem6:

    LIMIT = 100

    def main(self):
        l = range(1, self.LIMIT + 1)
        print((sum(l) ** 2) - (sum(i * i for i in l)))


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

(参考) Project Euler とは

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

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

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

Project Euler(日本語訳)