Edit

【pythonでABC172を解説】D - Sum of Divisors

問題概要

問題ページ

[st-card-ex url="https://atcoder.jp/contests/abc172/tasks/abc172_d" target="_blank" rel="nofollow" label="" name="" bgcolor="" color="" readmore="問題ページへ移動する"]

問題文

正整数 \(X\) に対し、\(X\) の正の約数の個数を \(f(X)\) とします。

正整数 \(N\) が与えられるので、\(\sum_{K=1}^N K\times f(K)\) を求めてください。

制約

  • \(1 \leq N \leq 10^7\)

問題の考察

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip('\n'))
    t = 0
    for i in range(1, n + 1):
        f = i
        l = n // i * i
        c = l // i
        t += (f + l) * c // 2
    print(t)


if __name__ == '__main__':
    solve()

プログラミング

-Edit
-