[프로그래머스] 약수의 개수와 덧셈 - python 본문

코테 문제 풀이

[프로그래머스] 약수의 개수와 덧셈 - python

미니모아 2022. 3. 28. 22:48
반응형

약수의 개수와 덧셈

문제

두 정수 leftright가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ leftright ≤ 1,000

풀이

def measure(num):
    cnt = 1
    for i in range(1, int(num // 2) + 1):
        if num % i == 0:
            cnt += 1
    return cnt % 2 == 0
    
def solution(left, right):
    answer = 0
    for n in range(left, right + 1):
        if measure(n):
            answer += n
        else:
            answer -= n
    return answer

제곱수는 약수의 개수가 홀수임을 이용할 수 있다.

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
반응형
Comments