코딩테스트

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

pyflu 2023. 8. 24. 20:26

[프로그래머스] 약수의 개수와 덧셈 Lv.1 - [파이썬/python]

 

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


 


문제 설명

 
 
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 반환(return)하는 문제입니다.
 

※ 제한사항

  • 1 ≤ left ≤ right ≤ 1,000

 

 
 




정답 주의!!!




 
 


def solution(left, right):
   
    result = 0  # 결과값을 저장할 변수 초기화

    # 주어진 범위 [left, right]의 모든 숫자에 대해서 반복
    for i in range(left, right + 1):
       
        # i의 약수의 개수가 홀수면 i는 완전제곱수(정수)이다.
        # i는 완전제곱수(정수)일 경우 약수의 개수가 홀수이므로 결과값에서 i를 뺌
        if int(i ** 0.5) == i ** 0.5:
            result -= i
           
        # 그렇지 않다면, i의 약수의 개수가 짝수인 것을 의미하므로 결과값에 i를 더함
        else:
            result += i

    return result  # 최종 결과값 반환

728x90