Python_약수의 합

김보람·2022년 4월 13일
0

Python

목록 보기
5/39

<문제>

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

<풀이>

def solution(n):
    return sum([i for i in range(1, n+1) if n%i == 0])

<다른 풀이>

방법 1.
def solution(n):
    # n / 2 의 수들만 검사하면 성능 약 2배 향상
    return n + sum([i for i in range(1, (n // 2) + 1) if n % i == 0])
방법 2.
def solution(n):
    return sum(filter(lambda x: n % x == 0, range(1, n + 1)))

<느낀점>

방법1은 진짜 머리가 좋아야 할 것 같다.

profile
starry_developer

0개의 댓글