[programmers] 약수의 개수와 덧셈

녹차마루·2022년 4월 9일
0

수의 약수의 개수가 짝수/홀수임을 판별하라.
https://programmers.co.kr/learn/courses/30/lessons/77884

22-04-09 code

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 사용하지 않아도 할 수 있다.

22-04-21 code

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)])

0개의 댓글