소스 코드

def solution(left, right):
    answer = 0

    for q in range(left,right+1):
        temp = []
        for w in range(1,int(q**(1/2)+1)):
            if q % w == 0:
                if w ** 2 == q:
                    temp.append(w)

                else:

                    temp.append(q//w)
                    temp.append(w)

        if len(temp) % 2 == 0:
            answer += q

        else:
            answer -= q

    return answer

 


해결 방법

1. 약수 n은 n까지 다 확인할 필요 없음

ex) 12의 경우 1-12 2-6 3-4가 짝을 이룸(12를 만들 수 있는 조합)

=> 3까지만 확인하면 끝(12까지 확인할 필요 없음)


느낀 점

 

 

ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.

 

오류적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.

 

혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.