[프로그래머스] 약수의 개수와 덧셈 / Python

이다혜·2021년 7월 10일
0

약수의 개수와 덧셈

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

  • 제한사항
    1 ≤ left ≤ right ≤ 1,000

나의 풀이

  • 약수를 다 구해 개수를 찾을 필요가 없는 문제
  • 자연수 거듭제곱꼴인 숫자는 약수의 개수가 홀수라는 것을 알면 로직이 간단해진다.
def solution(left, right):
    answer = 0
    for num in range(left, right + 1):
        # num이 자연수의 거듭제곱인 숫자라면 약수의 개수가 홀수임
        if num ** (1/2) == int(num ** (1/2)):
            answer -= num
        else:
            answer += num
    return answer
profile
하루하루 성장중

0개의 댓글