Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 주어진 숫자가 완전제곱수인지 확인하는 방법

어떤 수 n이 주어졌을 때, 이 숫자가 완전제곱수(perfect square)인지 판별해야 합니다. 완전제곱수란 제곱근이 정수인 수를 의미합니다.

예를 들어 입력값이 n = 36이라면, 36 = 6 × 6이므로 출력 결과는 True가 됩니다.

해결 접근 방법

이 문제는 다음 단계를 통해 해결할 수 있습니다.

  • sq_root에 n의 제곱근 값에서 소수점 이하를 버린 정수 부분을 저장합니다.
  • sq_root의 제곱이 n과 같으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

예제 코드

아래 구현 예시를 통해 더 자세히 이해해 보겠습니다.

from math import sqrt
def solve(n):
   sq_root = int(sqrt(n))
   return (sq_root*sq_root) == n
n = 36
print (solve(n))

입력

36

출력

True

코드 설명

math 모듈의 sqrt 함수를 사용해 n의 제곱근을 계산한 뒤, int()로 정수 부분만 추출합니다. 그 후 해당 정수를 다시 제곱하여 원래 수 n과 비교합니다. 두 값이 일치하면 n은 완전제곱수이므로 True가 반환되고, 소수점 아래 손실된 부분이 있다면 False가 반환됩니다. 이 방법은 시간 복잡도 O(1)로 매우 효율적으로 동작합니다.