C语言求两个正整数的最大公约数
作者:野牛程序员:2023-08-23 11:34:05C语言阅读 2997
求两个正整数的最大公约数(Greatest Common Divisor,简称 GCD)可以使用欧几里德算法(辗转相除法)来实现。该算法的核心思想是通过反复取两个数的余数来逐步缩小问题规模,直到找到最大公约数。
以下是用 C 语言实现求两个正整数的最大公约数的示例代码:
#include <stdio.h>
// 函数声明:求最大公约数
int gcd(int a, int b);
int main() {
int num1, num2;
printf("请输入两个正整数:");
scanf("%d %d", &num1, &num2);
int result = gcd(num1, num2);
printf("最大公约数是:%d\\n", result);
return 0;
}
// 函数定义:求最大公约数
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}在这段代码中,gcd 函数使用欧几里德算法来计算两个数的最大公约数。循环中,每次将 b 赋值为 a 除以 b 的余数,然后交换 a 和 b 的值,直到 b 变为 0。最终,a 的值就是两个数的最大公约数。
请注意,欧几里德算法非常高效,适用于求解任意两个正整数的最大公约数。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:C语言约瑟夫问题(约瑟夫环)
- 下一篇:C语言筛法求素数(质数)
