[파이썬 프로그래머스] 약수의 개수와 덧셈
업데이트:
❓ 문제
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
> 제한 조건
- 1 ≤
left
≤right
≤ 1,000
✔️ 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def yaksu(n):
r = []
for i in range(1, int(n**0.5)+1):
if n % i == 0:
r += [i]
r += [n//i]
return len(set(r))
def solution(left, right):
answer = 0
for n in range(left, right+1):
answer = answer - n if yaksu(n) % 2 else answer + n
return answer
Notice: 이 게시물은 programmers.co.kr 사이트를 참고하였습니다.
댓글남기기