c 语言辗转相除法求最大公约数
时间: 2024-09-03 16:00:43 浏览: 58
辗转相除法,也称为欧几里得算法,是一种用来计算两个正整数a和b的最大公约数(GCD)的高效算法。其基本原理是:两个正整数a和b(a > b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。这个过程一直重复进行,直到余数为0时,最后的除数就是最大公约数。
以下是辗转相除法的步骤:
1. 用较小的数除以较大的数,计算余数。
2. 将较小的数和上一步的余数作为新的一对数。
3. 重复步骤1和步骤2,直到余数为0。
4. 当余数为0时,最后的除数即为两个数的最大公约数。
下面是一个用C语言实现辗转相除法求最大公约数的示例代码:
```c
#include <stdio.h>
// 函数声明
int gcd(int a, int b);
int main() {
int num1, num2, result;
// 输入两个数
printf("请输入两个正整数:");
scanf("%d %d", &num1, &num2);
// 计算最大公约数
result = gcd(num1, num2);
// 输出结果
printf("最大公约数是:%d\n", result);
return 0;
}
// 辗转相除法函数实现
int gcd(int a, int b) {
int temp;
while(b != 0) {
temp = a % b;
a = b;
b = temp;
}
return a;
}
```
阅读全文