c 计算两个输入整数的最大公约数
时间: 2023-12-11 22:57:45 浏览: 30
可以使用辗转相除法来计算两个整数的最大公约数。具体步骤如下:
1. 将两个整数 a 和 b 中较大的数赋值给变量 x,较小的数赋值给变量 y。
2. 计算 x 除以 y 的余数 r。
3. 如果 r 等于 0,则 y 就是最大公约数,算法结束。
4. 如果 r 不等于 0,则令 x 等于 y,y 等于 r,然后返回第二步。
以下是使用 C 语言实现的代码:
```c
#include <stdio.h>
int gcd(int a, int b) {
int x = (a > b) ? a : b;
int y = (a < b) ? a : b;
int r;
while (y != 0) {
r = x % y;
x = y;
y = r;
}
return x;
}
int main() {
int a, b, result;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
result = gcd(a, b);
printf("%d 和 %d 的最大公约数是 %d\n", a, b, result);
return 0;
}
```
在上面的代码中,我们定义了一个名为 `gcd` 的函数来计算两个整数的最大公约数。在 `main` 函数中,我们从用户那里获取两个整数,然后调用 `gcd` 函数来计算它们的最大公约数,并将结果输出到屏幕上。
相关问题
c语言计算两个正整数的最大公约数
答案:可以使用辗转相除法来计算两个正整数的最大公约数,具体实现如下:
```c
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int a, b;
printf("请输入两个正整数:");
scanf("%d %d", &a, &b);
printf("%d 和 %d 的最大公约数是 %d\n", a, b, gcd(a, b));
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 a, b;
printf("请输入两个正整数:");
scanf("%d %d", &a, &b);
printf("它们的最大公约数是:%d\n", gcd(a, b));
return 0;
}
```