辗转相除法求最大公约用函数
时间: 2024-09-06 17:05:47 浏览: 50
Java中使用辗转相除法求最大公约数
辗转相除法,也称为欧几里得算法,是一种用来计算两个正整数a和b的最大公约数的算法。其基本思想是:用较小的数除较大的数,将余数(0除外)作为新的较小数,较大数变为新的较大数,继续这个过程,直到余数为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 和 %d 的最大公约数是 %d\n", num1, num2, result);
return 0;
}
// 函数定义:计算最大公约数
int gcd(int a, int b) {
int temp;
while (b != 0) { // 当b不为0时继续执行
temp = a % b; // 余数赋值给temp
a = b; // 把除数赋值给被除数
b = temp; // 把余数赋值给除数
}
return a; // 当余数为0时,a就是最大公约数
}
```
在这个示例中,`gcd`函数通过一个循环来实现辗转相除法。循环会一直执行,直到b变为0,此时a中存储的值就是两个输入数的最大公约数。
阅读全文