문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ left ≤ right ≤ 1,000
def solution(left, right):
# 약수의 갯수가 홀수인 거는 어떤 수의 제곱이라는 점을 이용했다
ans = sum(range(left,right+1))
sums = 0
for i in range(int(left ** 0.5),int(right ** 0.5) + 1):
if (i**2) >= left and (i**2) <= right:
sums += i**2
return ans - (sums * 2)
'2021 파이썬 챌린지' 카테고리의 다른 글
2021.07.18 18일차 문제 예시답안 (0) | 2021.07.19 |
---|---|
2021.07.018 18일차 문제 (0) | 2021.07.18 |
2021.07.017 17일차 문제 (0) | 2021.07.17 |
2021.07.16 16일차 문제 예시답안 (0) | 2021.07.17 |
2021.07.016 16일차 문제 (0) | 2021.07.16 |