728x90

https://programmers.co.kr/learn/courses/30/lessons/77884

출처 : 프로그래머스

 

코딩테스트 연습 - 약수의 개수와 덧셈

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

programmers.co.kr


def solution(left, right):
    answer = 0
    for i in range(left,right+1):
        cnt = 0 # 약수 개수 카운트
        for j in range(1,i+1):
            if i % j == 0: # 약수면
                cnt += 1
        if cnt % 2 == 0: # 약수 개수가 짝수면 더하고
            answer += i
        else: # 약수 개수가 홀수면 빼기
            answer -= i
    return answer

풀이

left부터 right까지 하나씩 약수의 개수를 구한다.

약수의 개수가 짝수면 answer 에 더해주고

약수의 개수가 홀수면 answer 에서 빼준다.

+ Recent posts