본문 바로가기

카테고리 없음

프로그래머스 1LV - 약수의 합

https://school.programmers.co.kr/learn/courses/30/lessons/12928

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

def solution(n):
    NL = []
    for i in range(1, int(n**(1/2)+1)):
        a, b = divmod(n, i)
        if b == 0:
            NL.append(a)
            NL.append(i)
    NL = set(NL)
    return sum(NL)

제곱근까지만 for문 돌려도 전체약수를 찾을 수 있고

16 25같은 경우 같은숫자가 두번들어가는것을 set으로 중복값제거했음