문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
def solution(left, right):
answer = 0
for i in range(left , right+1):
square_root = i**(1/2) # 제곱근 아이디어
if int(str(square_root).split(".")[1]) == 0: # 정수부분 == 0
answer -= i # 빼기
else:
answer += i # 더하기
return answer
외치자...! 제곱근이 정수면 약수의 개수는 홀수!
자 다시? 제곱근이 정수면 약수의 개수는 홀수!
한번 더! 제곱근이 정수면 약수의 개수는 홀수!
import math
def solution(left, right):
answer = 0
for i in range(left, right + 1, 1):
sqrt = math.sqrt(i)
if int(sqrt) == sqrt:
answer -= i
else:
answer += i
return answer
math 라이브러리에서 sqrt 사용도 가능하다!