수의 약수의 개수가 짝수/홀수임을 판별하라.
https://programmers.co.kr/learn/courses/30/lessons/77884
def solution(left, right):
factor_dict = {}
left_right = range(left,right+1)
for i in left_right:
factor_dict[i] = 2 if i>1 else 1
for k in range(2,int(right/2)+1):
for j in left_right:
if (j%k == 0) and (k < j):
factor_dict[j] += 1
answer = sum([key if value % 2 == 0 else -key for key, value in factor_dict.items()])
Tips.
1. 소수인지 판별하는 것과는 다른 방식으로 이루어진다.
2. dict 사용하지 않아도 할 수 있다.
import numpy as np
def solution(left, right):
return sum([-n if int(np.sqrt(n))**2 == n else n for n in range(left, right+1)])