Python 3 で数学を。

Python 3 とライブラリで数学の問題を解いていきます。統計学や機械学習はときどき。

約数の総数と総和 (Python 3, sum(), SymPy: divisor_count(), divisors())

使用するライブラリ

SymPy

Python 3 コード

divisor_count_and_sum.py

#!/usr/bin/env python3


"""(docstring)
"""


import sympy as sym


def divisor_count_and_sum(n):
    """(docstring)
    """
    count = sym.divisor_count(n)
    divs = sym.divisors(n)

    return count, sum(divs)


if __name__ == '__main__':
    print("""以下の各整数の正の約数の総数と総和を求めよ。

(1) 1440
(2) 3528
(3) 37800
""")
    print('-'*79)

    print('解答: (約数の総数, 約数の総和)\n')
    print('-'*79)

    n_list = [1440, 3528, 37800]

    for idx, n in enumerate(n_list):
        print('({})\n'.format(idx+1))
        print('解答: ', end='')
        print(divisor_count_and_sum(n))
        print('')
        print('-'*79)

出力

$ python3 divisor_count_and_sum.py
以下の各整数の正の約数の総数と総和を求めよ。

(1) 1440
(2) 3528
(3) 37800

-------------------------------------------------------------------------------
解答: (約数の総数, 約数の総和)

-------------------------------------------------------------------------------
(1)

解答: (36, 4914)

-------------------------------------------------------------------------------
(2)

解答: (36, 11115)

-------------------------------------------------------------------------------
(3)

解答: (96, 148800)

-------------------------------------------------------------------------------

参考文献 (数式を参考)