c语言中辗转相除求最大公约数·
时间: 2024-05-23 19:15:36 浏览: 86
#include <stdio.h>
int gcd(int a, int b)
{
int r;
while(b != 0)
{
r = a % b;
a = b;
b = r;
}
return a;
}
int main()
{
int a, b, result;
printf("Enter two integers: ");
scanf("%d%d", &a, &b);
result = gcd(a, b);
printf("The GCD of %d and %d is %d\n", a, b, result);
return 0;
}
相关问题
请用C语言写辗转相除法最大公约数
当然,我可以为您提供一个C语言实现的辗转相除法求最大公约数的代码,代码如下:
```
#include <stdio.h>
int gcd(int a, int b) {
if(b == 0)
return a;
else
return gcd(b, a%b);
}
int main() {
int num1, num2;
printf("请输入两个数:\n");
scanf("%d%d", &num1, &num2);
printf("最大公约数为:%d\n", gcd(num1, num2));
return 0;
}
```
希望您能够满意我的回答,还有什么可以帮到您的吗?
C语言辗转相除求最大公约数
以下是C语言辗转相除求最大公约数的示例代码:
```
#include <stdio.h>
int gcd(int a, int b) {
int r;
while (b != 0) {
r = a % b;
a = b;
b = r;
}
return a;
}
int main() {
int a, b;
printf("请输入两个整数:\n");
scanf("%d %d", &a, &b);
int result = gcd(a, b);
printf("最大公约数是:%d\n", result);
return 0;
}
```
代码解释:
1. 首先定义了一个 `gcd` 函数,该函数接受两个参数 `a` 和 `b`。
2. 在函数中使用 while 循环,不断进行辗转相除的过程,直到 `b` 变成 0。
3. 在每次循环中,将 `a` 对 `b` 取模得到余数 `r`,然后将 `b` 赋值为 `r`,将 `a` 赋值为原来的 `b`。
4. 当 `b` 变成 0 时,返回 `a`,即为最大公约数。
5. 在主函数中,先读入用户输入的两个整数,然后调用 `gcd` 函数求出最大公约数,并输出结果。
注意事项:
1. C语言中 `%` 运算符表示取模,不是求余数,因此需要注意。
2. 辗转相除法也叫欧几里得算法,是一种高效的求最大公约数的方法。
阅读全文