약수의 개수와 덧셈

sky·2022년 7월 27일

Programmers Lv.1(Python)

목록 보기
24/28
post-thumbnail

문제

문제 설명

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

제한사항

  • 1 ≤ leftright ≤ 1,000

입출력 예

  • 입출력 예 #1
    다음 표는 13부터 17까지의 수들의 약수를 모두 나타낸 것입니다.

    따라서, 13 + 14 + 15 - 16 + 17 = 43을 return 해야 합니다.

Solution

Python

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

생각보다 길어진 코드..

Another Solution

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

i**0.5은 i의 제곱근을 구하는 거라고 한다. 너무나 깔끔한 코드다..


Total Time

  • 2022-07-27 | 15:45 - 16:25 Success!
profile
개발자가 되고 싶은 1人

0개의 댓글