
gmp_cmp 함수의 반환 값은 다음과 같습니다.
- 1 : 첫 번째 인수가 두 번째 인수보다 크다.
- 0 : 첫 번째 인수가 두 번째 인수와 같다.
- -1 : 첫 번째 인수가 두 번째 인수보다 작다.
gmp_cmp 함수를 사용하여 두 개의 큰 정수를 비교하는 예는 다음과 같습니다.
#hostingforum.kr
c
#include
int main() {
mpz_t num1, num2;
mpz_init(num1);
mpz_init(num2);
mpz_set_str(num1, "12345678901234567890", 10);
mpz_set_str(num2, "98765432109876543210", 10);
int result = gmp_cmp(num1, num2);
if (result > 0) {
printf("%s은 %s보다 크다.n", mpz_get_str(NULL, 10, num1), mpz_get_str(NULL, 10, num2));
} else if (result < 0) {
printf("%s은 %s보다 작다.n", mpz_get_str(NULL, 10, num1), mpz_get_str(NULL, 10, num2));
} else {
printf("%s은 %s과 같다.n", mpz_get_str(NULL, 10, num1), mpz_get_str(NULL, 10, num2));
}
mpz_set_str(num1, "12345678901234567890", 10);
mpz_set_str(num2, "12345678901234567890", 10);
result = gmp_cmp(num1, num2);
if (result > 0) {
printf("%s은 %s보다 크다.n", mpz_get_str(NULL, 10, num1), mpz_get_str(NULL, 10, num2));
} else if (result < 0) {
printf("%s은 %s보다 작다.n", mpz_get_str(NULL, 10, num1), mpz_get_str(NULL, 10, num2));
} else {
printf("%s은 %s과 같다.n", mpz_get_str(NULL, 10, num1), mpz_get_str(NULL, 10, num2));
}
mpz_set_str(num1, "-12345678901234567890", 10);
mpz_set_str(num2, "-98765432109876543210", 10);
result = gmp_cmp(num1, num2);
if (result > 0) {
printf("%s은 %s보다 크다.n", mpz_get_str(NULL, 10, num1), mpz_get_str(NULL, 10, num2));
} else if (result < 0) {
printf("%s은 %s보다 작다.n", mpz_get_str(NULL, 10, num1), mpz_get_str(NULL, 10, num2));
} else {
printf("%s은 %s과 같다.n", mpz_get_str(NULL, 10, num1), mpz_get_str(NULL, 10, num2));
}
mpz_clear(num1);
mpz_clear(num2);
return 0;
}
이 예제에서는 gmp_cmp 함수를 사용하여 두 개의 큰 정수를 비교하고, 반환 값에 따라 결과를 출력합니다.
2025-05-20 14:13