PHP의 gmp_perfect_square() 함수는 GMP 숫자가 완전제곱수(perfect square)인지 여부를 검사하는 함수입니다. 임의 정밀도 정수를 다룰 때, 어떤 수가 특정 정수의 제곱인지 확인해야 하는 상황에서 유용하게 활용할 수 있습니다.
문법
gmp_perfect_square(val)
매개변수
val − 완전제곱수인지 검사할 GMP 숫자입니다. PHP 5.6 이상에서는 GMP 객체를 사용할 수 있으며, 숫자 형태의 문자열도 전달 가능합니다.
반환 값
gmp_perfect_square() 함수는 val이 완전제곱수이면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.
예제
다음은 36이 완전제곱수인지 검사하는 예제입니다. 36은 6의 제곱이므로 결과는 true가 됩니다.
<?php
$val = "36";
var_dump(gmp_perfect_square($val));
?>
출력 결과
bool(true)
완전제곱수가 아닌 경우
반대로 완전제곱수가 아닌 값을 넣으면 false가 반환됩니다.
<?php
$val1 = "36";
$val2 = "37";
var_dump(gmp_perfect_square($val1)); // bool(true)
var_dump(gmp_perfect_square($val2)); // bool(false)
?>
참고로, 완전제곱수의 실제 제곱근을 구하려면 관련 함수인 gmp_sqrt()를 함께 활용하면 됩니다.