17427번 : 약수의 합 2

김민관·2022년 11월 8일

백준_Silver

목록 보기
57/57

문제

파이썬

def solution(n):
    answer = 0

    for i in range(1, n+1):
        answer += (n//i) * i

    return answer


n = int(input())

print(solution(n))

풀이

  • 처음엔 제곱근을 사용하여 약수의 합을 구하고 2중 for문을 돌려 해결하려 했으나 시간초과가 뜸
  • (n//i)는 n아래에서 i를 약수로 갖고있는 숫자들의 갯수를 의미
  • 고로 (n//i) * i 를 순차적으로 n까지 오면서 더하면 모든 약수들의 합이 된다.
profile
게임 개발일지 & IT 소식들 공유

0개의 댓글