본문 바로가기
Programmers/Python

[Python] 프로그래머스 :: 약수의 개수와 덧셈

by Sin_ 2021. 10. 7.
728x90

안녕하세요 뚜디 입니다:)

코딩테스트 연습 - 약수의 개수와 덧셈 | 프로그래머스 (programmers.co.kr)

 

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

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

programmers.co.kr

< 프로그래머스 - 약수의 개수와 덧셈 (LV1) >


1. 연습 문제

2. 문제 풀이

3. 소스 코드

4. 결과


1. 연습 문제
  • 문제 설명
두 정수 left와 right가 매개변수로 주어집니다. 
left 부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
  • 제한 조건
1 ≤ left ≤ right ≤ 1,000
  • 입출력 예
left right result
13 17 43
24 27 52

 

2. 문제 풀이

입출력 예 #1

약수 약수의 개수
13 1, 13 2
14 1, 2, 7, 14 4
15 1, 3, 5, 15 4
16 1, 2, 4, 8, 16 5
17 1, 17 2

입출력 예 #2

약수 약수의 개수
24 1, 2, 3, 4, 6, 8, 12, 24 8
25 1, 5, 25 3
26 1, 2, 13, 26 4
27 1, 3, 9, 27 4
1. 제한조건에 따라 입력받는 left <= right 이다.
2. left부터 right까지 반복문을 통해 약수의 갯수를 찾는다.
3. 약수의 갯수가 짝/홀 이냐에 따라 answer값에 합하여 리턴한다.

 

3. 소스 코드
def solution(left, right):
    answer = 0
    count = 0

    for i in range(left, right+1, 1):
        for j in range(1, i+1, 1):
            if (i % j == 0):
                count += 1
        if (count % 2 == 0):
            answer += i
            count = 0
        else:
            answer -= i
            count = 0
            
    return answer

 

4. 결과

728x90