본문 바로가기

2021 파이썬 챌린지

2021.07.17 17일차 문제 예시답안

문제 설명

두 정수 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