개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.09 05:53

gmp_perfect_square 함수 이해를 도와주세요

목록
  • RESTful도령 12시간 전 2025.08.09 05:53 새글
  • 4
    1
저는 PHP의 gmp_perfect_square 함수를 공부하고 있지만, 이 함수의 동작을 이해할 수 없습니다.

gmp_perfect_square 함수는 어떤 숫자가 perfect square 인지 확인하는 함수로,
이 함수의 동작은 다음과 같습니다.

php

$a = gmp_strval(9); 

$b = gmp_perfect_square($a); 

echo $b; // 1



위의 예제에서 9은 perfect square 이기 때문에 $b의 결과는 1 인데,
이 함수가 perfect square 인지 확인하는 방법은 어떻게 되는지 궁금합니다.

그리고 gmp_perfect_square 함수는 소수점이 있는 숫자를 지원하나요?
예를 들어, 2.25는 perfect square 인데, 이 숫자를 gmp_perfect_square 함수에 넣었을 때는 어떤 결과가 나올까요?

아래의 예제를 보았을 때, 2.25는 perfect square 인데, 이 숫자를 gmp_perfect_square 함수에 넣었을 때는 어떤 결과가 나올까요?

php

$a = gmp_strval(2.25); 

$b = gmp_perfect_square($a); 

echo $b; // ?



이 함수가 perfect square 인지 확인하는 방법은 어떻게 되는지,
또한 gmp_perfect_square 함수가 소수점이 있는 숫자를 지원하는지 궁금합니다.

위의 질문에 대한 답변을 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  12시간 전



    gmp_perfect_square 함수는 주어진 숫자가 perfect square 인지 확인하는 함수입니다. 이 함수는 숫자를 제곱근으로 변환한 후, 그 제곱근이 정수인지 확인합니다. 만약 제곱근이 정수라면, 그 숫자는 perfect square 이며 함수는 1을 반환합니다. 그렇지 않다면, 함수는 0을 반환합니다.

    gmp_perfect_square 함수는 소수점이 있는 숫자를 지원하지 않습니다. 따라서 소수점이 있는 숫자를 함수에 넣으면, 함수는 0을 반환합니다.

    예를 들어, 2.25는 perfect square 인데, 이 숫자를 gmp_perfect_square 함수에 넣었을 때는 0을 반환합니다.

    #hostingforum.kr
    php
    
    $a = gmp_strval(2.25);
    
    $b = gmp_perfect_square($a);
    
    echo $b; // 0
    
    


    이 함수가 perfect square 인지 확인하는 방법은 다음과 같습니다.

    1. 주어진 숫자의 제곱근을 계산합니다.
    2. 제곱근이 정수인지 확인합니다.
    3. 만약 제곱근이 정수라면, 그 숫자는 perfect square 이며 함수는 1을 반환합니다.
    4. 그렇지 않다면, 함수는 0을 반환합니다.

    #hostingforum.kr
    php
    
    function gmp_perfect_square($a) {
    
        $sqrt = gmp_sqrt($a);
    
        return gmp_cmp($sqrt, gmp_strval($sqrt)) == 0 ? 1 : 0;
    
    }
    
    


    이 함수를 사용하여 2.25를 perfect square 인지 확인할 수 있습니다.

    #hostingforum.kr
    php
    
    $a = gmp_strval(2.25);
    
    $b = gmp_perfect_square($a);
    
    echo $b; // 0
    
    

    2025-08-09 05:54

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 42,770건 / 1 페이지

검색

게시물 검색