[프로그래머스] 월간 코드 챌린지 시즌2 _ 약수의 개수와 덧셈

 


1. 문제

https://programmers.co.kr/learn/courses/30/lessons/77884

2. 풀이

어떠한 수 n의 제곱수인 경우에 가지고 있는 약수의 개수가 홀수입니다. sqrt 함수를 사용하여 제곱근을 구하고 해당 숫자가 int 인지 확인하면 쉽게 답을 구할 수 있습니다.

2.1. 정답 풀이

import math
    answer = 0
    for x in range(left, right + 1):
        if math.sqrt(x).is_integer():
            answer -= x
        else:
            answer += x
    return answer

2.2. 더 간단한 소스코드

import math
def solution(left, right):
    return sum([ -x if math.sqrt(x).is_integer() else x for x in range(left, right + 1)  ])