티스토리 뷰

728x90

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

 

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

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

programmers.co.kr

 

  • 해설 :

left와 right가 주어질 때 left부터 right까지의 정수 중 약수의 개수가 짝수인 것은 더하고 홀수인 것은 빼서 결괏값을 반환하면 된다.

 

 

 

  • 풀이 :

약수의 개수를 구하는 cnt 함수를 만들고 for 문의 범위를 left부터 right 까지 각 정수마다 약수의 개수를 체크한다. 이 때, 개수가 짝수면 + 홀수면 - 부호를 붙여서 sum함수로 최종 덧셈하였다.

 

 

 

 

1
2
3
4
5
6
7
8
9
10
def cnt(i):
    c = 0
    for j in range(1,i+1):
        if i%j == 0:
            c += 1
    return c
    
 
def solution(left, right):
    return sum(i if (cnt(i)%2== 0 else -for i in range(left,right+1))
cs
320x100
댓글
© 2022 WonSeok, All rights reserved