数学のブログ

“離散的”な世界 等差数列の和、3桁の自然数、剰余

新装版 数学読本3 (松坂 和夫(著)、岩波書店)の第13章(“離散的”な世界 - 数列)、13.1(数列とその和)、等差数列の和の問8の解答を求めてみる。

(1)

5で割り切れる自然数。

( 5 n ) n

3桁の自然数の場合。

100 5 n < 1000 20 n < 200

初項。

5 · 20 = 100

末頃。

5 · 199 = 995

項数.

199 - 19 = 180

よって 求める総和は

180 · ( 100 + 995 ) 2 = 98550

(2)

100 5 n + 3 < 1000
97 5 n < 997
20 n 199
180 ( 103 + 998 ) 2 = 99090

コード

#!/usr/bin/env python3
from unittest import TestCase, main

print('8.')

ns = range(100, 1000)


class Test(TestCase):
    def test1(self):
        self.assertEqual(
            sum([n for n in ns if n % 5 == 0]),
            98550
        )

    def test2(self):
        self.assertEqual(
            sum([n for n in ns if n % 5 == 3]),
            99090
        )


if __name__ == "__main__":
    main()

入出力結果

% ./sample8.py -v
8.
test1 (__main__.Test) ... ok
test2 (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK
%