I about me

[Python] 약수의 개수와 덧셈 본문

Algorithm/프로그래머스

[Python] 약수의 개수와 덧셈

ssungni 2024. 5. 23. 01:17

문제 설명

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

 

제한사항

  • 1 ≤ left ≤ right ≤ 1,000

입출력 예

left right result
13 17 43
24 27 52

 

문제풀이

1) left부터 right까지 숫자 돌리기

for num in range(left, right+1):

2) 1부터 num까지 약수인지 아닌지(그 i를 나누어서 나머지가 0이면 약수인 것 파악)

for i in range(1, num+1):
            if num % i == 0:
                count += 1

3) 그 count 수가 짝수이면 answer += num, 홀수이면 answer -= num

answer = 0
if count % 2 == 0: # 짝수이면
	answer += num
else:
	answer -= num

코드 합치기

def solution(left, right):
    answer = 0
    for num in range(left, right+1):
        count = 0
        for i in range(1, num+1):
            if num % i == 0:
                count += 1
        if count % 2 == 0: # 짝수이면
            answer += num
        else:
            answer -= num
    return answer