1. 문제
https://programmers.co.kr/learn/courses/30/lessons/77884
2. 풀이
어떠한 수 n의 제곱수인 경우에 가지고 있는 약수의 개수가 홀수입니다. sqrt 함수를 사용하여 제곱근을 구하고 해당 숫자가 int 인지 확인하면 쉽게 답을 구할 수 있습니다.
2.1. 정답 풀이
import math
answer = 0
for x in range(left, right + 1):
if math.sqrt(x).is_integer():
answer -= x
else:
answer += x
return answer
2.2. 더 간단한 소스코드
import math
def solution(left, right):
return sum([ -x if math.sqrt(x).is_integer() else x for x in range(left, right + 1) ])