求两个正整数的最大公约数。 输入 两个正整数,空格隔开。 输出 一个整数,表示最大公约数。c语言
时间: 2024-01-05 15:54:13 浏览: 73
可以使用辗转相除法求解两个正整数的最大公约数,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;
scanf("%d%d", &a, &b);
int result = gcd(a, b);
printf("%d\n", result);
return 0;
}
```
首先定义一个 `gcd` 函数,通过递归的方式来计算最大公约数。如果其中一个数为 0,直接返回另一个数即可;否则,将较小的数作为被除数,较大的数作为除数,计算它们的余数,将除数和余数作为新的参数递归调用 `gcd` 函数。
在 `main` 函数中,读入两个正整数,调用 `gcd` 函数,得到最大公约数,最后输出即可。
相关问题
求两个正整数的最大公约数。 输入 两个正整数,空格隔开。 输出 一个整数,表示最大公约数。c语言
以下是求两个正整数最大公约数的 C 语言代码:
```c
#include<stdio.h>
int gcd(int x, int y) {
if (y == 0) {
return x;
}
else {
return gcd(y, x % y);
}
}
int main() {
int x, y, res;
printf("请输入两个正整数,空格隔开:\n");
scanf("%d %d", &x, &y);
res = gcd(x, y);
printf("它们的最大公约数是:%d\n", res);
return 0;
}
```
在这个程序中,我们使用了递归的方式来求解最大公约数。如果第二个数为 0,那么最大公约数就是第一个数;否则,我们使用辗转相除法求出两个数的余数,然后递归求解这个余数和第二个数的最大公约数。
键盘输入两个正整数,求出这两个正整数的最大公约数并输出。 【输入形式】 键盘输入两个正整数,两个正整数之间用空格隔开 【输出形式】 输出这两个正整数的最大公约数怎么用c++表示
您好!这个问题是关于求最大公约数的,可以使用辗转相除法或欧几里得算法来解决。以下是一个用 C 语言实现的辗转相除法的示例代码:
```
#include <stdio.h>
int gcd(int a, int b) {
int temp;
while (b != 0) {
temp = a % b;
a = b;
b = temp;
}
return a;
}
int main() {
int num1, num2;
printf("请输入两个正整数,用空格隔开:\n");
scanf("%d %d", &num1, &num2);
int result = gcd(num1, num2);
printf("%d 和 %d 的最大公约数是 %d\n", num1, num2, result);
return 0;
}
```
当然,这只是一个简单的示例代码,实际应用中可能需要考虑更多的边界情况和优化。希望能对您有所帮助!
阅读全文