https://school.programmers.co.kr/learn/courses/30/lessons/77884
월간 코드 챌린지 시즌2
from collections import defaultdict
def solution(left, right):
answer = 0
count = defaultdict(int)
for i in range(left, right+1):
for j in range(1, i+1):
if i % j == 0:
count[i] += 1
for key, value in count.items():
if value % 2 == 0:
answer += key
else:
answer -= key
return answer
defaultdict를 이용해서 풀었음
key에 숫자를 넣고, value에 그 숫자에 해당하는 약수의 갯수를 넣음
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
제곱수(4, 9, 16, 25, ...)는 약수의 갯수가 홀수라는 성질을 이용해서 풀은 듯 (처음 알음)