- 매 수마다 약수를 구하고 그 약수들의 합을 구하기엔 너무 많은 시간이 소요된다. 뿐만 아니라 애초에 자연수 N의 범위는 1 ≤ N ≤ 1,000,000이라 매우 큰 수가 들어올 경우... 답이 없게 된다.
import sys
input = sys.stdin.readline
N = int(input().strip())
sum = 0
for i in range(1, N+1):
sum += i * (N // i)
print(sum)
입력
4
출력
10
* g(4) = f(1) + f(2) + f(3) + f(4)
1 1 1 1
2 3 2
4
1은 4번, 2는 2번, 3은 1번, 4는 1번 나온다.