def solution(left, right):
arr = []
cnt = []
for i in range(left, right+1):
for j in range(1,i+1):
if i%j == 0:
arr.append(j)
if len(arr) %2 == 0:
cnt.append(i)
del arr[:]
elif len(arr) %2 != 0:
cnt.append(-i)
del arr[:]
return sum(cnt)
def solution(left, right):
answer = 0
for i in range(left,right+1):
if int(i**0.5)==i**0.5: # 개념 설명 밑에
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
def solution(left, right):
def cnt_yak(number):
cnt = 1
for i in range(1, number//2+1):
if number % i == 0:
cnt += 1
return cnt
answer = 0
for i in range(left, right+1):
cnt = cnt_yak(i)
if cnt % 2 == 0:
answer += i
else:
answer -= i
return answer
int(i**0.5)==i**0.5: 부분은 약수의 갯수를 구할 때 가장 핵심적인 코드이다.
25를 제곱근 씌운 경우 5 도출 -> 제곱근 값이 정수형으로 나타낸 값과 같은 경우 약수의 갯수는 홀수이므로 뺀 수 도출
15를 제곱근 씌운 경우 3.XXX 도출 -> 제곱근 값이 정수형으로 나타낸 값과 같지 않으므로, 약수의 갯수는 짝수이므로 더한 수 도출
sqrt = math.sqrt(i) 여기서 sqrt는 제곱근을 의미하는 것으로 i****0.5와 동일한 코드이다. 제곱근 함수라고 기억하면 된다.