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

PHP gmp_div_qr() 함수 – 몫과 나머지를 한 번에 구하는 방법

PHP gmp_div_qr() 함수란?

PHP의 gmp_div_qr() 함수는 두 개의 GMP 숫자 사이에서 나눗셈 연산을 수행하고, 그 결과로 몫(quotient)과 나머지(remainder)를 동시에 반환하는 함수입니다. 큰 정수를 다루는 GMP 확장 모듈에서 나눗셈 결과를 한 번의 호출로 모두 얻고 싶을 때 유용하게 사용됩니다.

문법

gmp_div_qr(n1, n2)

매개변수

  • n1 − 첫 번째 GMP 숫자입니다. PHP 5.6 이상에서는 GMP 객체를 사용할 수 있으며, 숫자 문자열도 허용됩니다.

  • n2 − 두 번째 GMP 숫자입니다. 첫 번째 매개변수와 마찬가지로 PHP 5.6 이상에서는 GMP 객체를 사용할 수 있고, 숫자 문자열도 지원합니다.

반환값

gmp_div_qr() 함수는 나눗셈의 몫과 나머지를 배열(Array) 형태로 반환합니다.

  • 배열의 첫 번째 요소 [0]: 나눗셈의 몫(GMP 객체)
  • 배열의 두 번째 요소 [1]: 나눗셈의 나머지(GMP 객체)

사용 예제

다음은 gmp_div_qr() 함수를 활용한 기본적인 예제입니다.

<?php
    $n1 = gmp_init(129);
    $n2 = gmp_init(9);
    $a = gmp_div_qr($n1, $n2);
    echo "몫: " . gmp_strval($a[0]) . "\n";
    echo "나머지: " . gmp_strval($a[1]);
?>

위 예제에서는 gmp_init()으로 129와 9라는 두 개의 GMP 숫자를 생성한 뒤, gmp_div_qr() 함수로 나눗셈을 수행합니다. 반환된 배열에서 몫과 나머지를 각각 꺼내 출력하기 위해 gmp_strval() 함수를 함께 사용했습니다.

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Array
(
    [0] => GMP Object ( [num] => 14 )
    [1] => GMP Object ( [num] => 3 )
)

결과 해석

129를 9로 나누면 몫은 14, 나머지는 3입니다. 즉, 129 = 9 × 14 + 3의 관계가 성립하며, gmp_div_qr() 함수 하나만으로 몫과 나머지를 동시에 얻을 수 있습니다. 별도로 gmp_div_q()와 gmp_div_r()을 각각 호출해야 하는 번거로움 없이 효율적으로 처리할 수 있다는 점이 이 함수의 가장 큰 장점입니다.