알고리즘/이것저것

[프로그래머스] 약수의 합 - 파이썬(python)

아뵹젼 2022. 9. 3.

 

 

나의 풀이

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

1부터 n까지 돌면서, n 을 해당 숫자로 나누었을 때 나머지가 0 이라면 약수에 해당

 

 

 

다른 풀이

def sumDivisor(num):
    return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])

num / 2까지만 검사하여 성능을 2배로 올렸다.

그도 그럴 것이 num 이 100라고 생각해보자. 50 보다 큰 숫자는 100의 약수가 될 수 없으므로, 검사할 필요가 없다..!

조금 더 생각하는 능력을 키우자!!

댓글