업데이트:

❓ 문제


두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

>  제한 조건


  • 1 ≤ leftright ≤ 1,000

✔️ 풀이


1
2
3
4
5
6
7
8
9
10
11
12
13
14
def yaksu(n):
    r = []
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            r += [i]
            r += [n//i]
    return len(set(r))


def solution(left, right):
    answer = 0
    for n in range(left, right+1):
        answer = answer - n if yaksu(n) % 2 else answer + n
    return answer

Notice: 이 게시물은 programmers.co.kr 사이트를 참고하였습니다.

댓글남기기