코딩테스트 연습에 공개된 문제는 (주)그렙이 저작권을 가지고 있습니다.
(지문 하단에 별도 저작권 표시 문제 제외)
코딩테스트 연습 문제의 지문, 테스트케이스, 풀이 등과 같은 정보는 비상업적, 비영리적 용도로 게시할 수 있습니다.

코딩테스트 정보

  • 프로그래머스
  • python
  • level 1
  • 점수 : 캡쳐 못함
  • 문제 링크


문제

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

풀이 코드

풀이 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def solution(left, right):
    answer = 0
    
    # 약수의 개수가 짝수인 수는 더하고
    # 약수의 개수가 홀수인 수는 빼고
    
    #1 약수의 개수 구하기 (각 레, 라는 통합해도 좋고 아니어도 좋고)
    #count_dev = 해당 수의 약수 개수
    count_dev = 0
    
    for i in range(left, right + 1):
      for n in range(1, i + 1):
        if i % n == 0:
          count_dev += 1
      if count_dev % 2 == 0:
        answer += i
        count_dev = 0
      else:
        answer -= i
        count_dev = 0
    
    return answer