[백준] 17427번 약수의 합 2

거북이·2023년 1월 29일
0

백준[실버2]

목록 보기
42/81
post-thumbnail

💡문제접근

  • 매 수마다 약수를 구하고 그 약수들의 합을 구하기엔 너무 많은 시간이 소요된다. 뿐만 아니라 애초에 자연수 N의 범위는 1 ≤ N ≤ 1,000,000이라 매우 큰 수가 들어올 경우... 답이 없게 된다.

💡코드(메모리 : 30616KB, 시간 : 196ms)

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번 나온다.

    • 1 : 1 * (4 // 1)
    • 2 : 2 * (4 // 2)
    • 3 : 3 * (4 // 3)
    • 4 : 4 * (4 // 4)

💡소요시간 : 8m

0개의 댓글