반응형

2023년 마지막날 코테 풀기~! 

 

 

문제


 

코드

 

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


# 약수의 개수가 짝수이면 True, 홀수이면 False를 return 해주는 함수
def plus_tf(num):
    # print("plus_tf 함수 호출 ", num)
    # 약수를 저장할 변수 lst 초기화
    lst = []
    lst.append(num)
    # 2를 나눈 수까지 반복
    for n in range(1, num // 2 + 1):
        # n으로 나눴을 때 나머지가 없으면 나눠지는 것으로 lst에 추가
        if num%n == 0:
            lst.append(n)
    # 중복 제거
    lst = set(lst)
    # print("num: ", num, "lst: ", lst)
    # 짝수이면 True 반환
    if len(lst) % 2 == 0:
        return True
    # 홀수는 False 반환
    else:
        return False


def solution(left, right):
    answer = 0
    for i in range(left, right+1):
        if plus_tf(i):
            answer += i
        else:
            answer -= i

    return answer

 

 

 


 

 

 

반응형
복사했습니다!