
gmp_gcdext 함수는 GCD와 함께 상수 인수와 몫을 반환하는 함수입니다.
이 함수의 첫 번째 인수는 두 번째 인수보다 큰 두 개의 확장된 유리수입니다. 두 번째 인수는 첫 번째 인수보다 작은 확장된 유리수입니다. 세 번째 인수는 상수 인수입니다.
상수 인수는 0이면 GCD만 반환하고, 1이면 GCD와 상수 인수를 반환합니다.
gmp_gcdext 함수를 사용하여 GCD와 함께 상수 인수를 반환하려면, 세 번째 인수에 1을 지정하면 됩니다.
예를 들어, 두 개의 확장된 유리수 a와 b, 상수 인수 c를 다음과 같이 계산할 수 있습니다.
gmp_gcdext(a, b, c) = (g, p, q)
여기서 g는 GCD, p는 상수 인수, q는 몫입니다.
예제:
#hostingforum.kr
c
#include
int main() {
mpz_t a, b, c, g, p, q;
mpz_init(a);
mpz_init(b);
mpz_init(c);
mpz_init(g);
mpz_init(p);
mpz_init(q);
// 두 개의 확장된 유리수 a와 b를 설정합니다.
mpz_set_str(a, "12", 10);
mpz_set_str(b, "18", 10);
// 상수 인수 c를 설정합니다.
mpz_set_str(c, "1", 10);
// GCD와 함께 상수 인수를 반환합니다.
gmp_gcdext(a, b, c, g, p, q);
// 결과를 출력합니다.
gmp_printf("GCD: %Zdn", g);
gmp_printf("상수 인수: %Zdn", p);
gmp_printf("몫: %Zdn", q);
mpz_clear(a);
mpz_clear(b);
mpz_clear(c);
mpz_clear(g);
mpz_clear(p);
mpz_clear(q);
return 0;
}
이 예제에서는 두 개의 확장된 유리수 a와 b, 상수 인수 c를 설정하고, gmp_gcdext 함수를 사용하여 GCD와 함께 상수 인수를 반환합니다. 결과를 출력하고, 사용된 자원을 해제합니다.
2025-03-13 23:25