😎코딩테스트 연습>월간 코드 챌린지 시즌2>약수의 개수와 덧셈
- left부터 right까지 약수의 개수 구하기
- 약수의 개수가 짝수이면 양수의 값 append
- 홀수이면 음수 값 append
def solution(left, right):
num_list = []
for num in range(left,right+1):
k = 0
for a in range(1, num+1):
if num%a == 0:
k += 1
if k%2 == 0:
num_list.append(num)
else:
num_list.append(-num)
return sum(num_list)
다른 사람의 풀이를 보니 약수가 홀수개라면 제곱근이라는 것을 이용해서
제곱근을 구하는 math.sqrt()을 이용하는 방법도 있었다.
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