問題概要
問題ページ
-
D - Sum of Divisors
問題ページへ移動する
問題文
正整数 \(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()