728x90
문제 설명
두 정수 left와 right가 매개변수로 주어집니다.
left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/77884
제한 사항
1 ≤ left ≤ right ≤ 1,000
예제
left | right | result |
13 | 17 | 43 |
24 | 27 | 52 |
문제 풀이
def solution(left, right):
answer = 0
for num in range(left, right+1):
cnt = sum(1 for i in range(1, num+1) if num % i == 0)
answer += num if cnt % 2 == 0 else -num
return answer
def solution(left, right):
answer = 0
for num in range(left, right+1):
if int(num**0.5) == num**0.5:
answer -= num
else:
answer += num
return answer
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90