用户给定两个正整数,请输出其最大公约数。 【样例输入】 12 18 【样例输出】 【样例输入】 2729 【样例输出】 【样例输入】 51 17 【样例输出】的代码
时间: 2023-03-29 11:03:24 浏览: 74
我可以回答这个问题。这是一个求最大公约数的问题,可以使用辗转相除法来解决。具体步骤如下:
1. 用较大数除以较小数,得到余数
2. 把较小数作为除数,余数作为被除数,再次进行相除
3. 重复上述步骤,直到余数为
4. 最后的除数即为最大公约数
以下是代码实现:
#include <stdio.h>
int main()
{
int a, b, temp;
scanf("%d %d", &a, &b);
while (b != )
{
temp = a % b;
a = b;
b = temp;
}
printf("%d", a);
return ;
}
相关问题
python 给定两个正整数,求它们的最大公约数。 输入描述 输入一行,包含两个正整数(<1,000,000,000)。 输出描述 输出一个正整数,即这两个正整数的最大公约数。 样例输入 6 9 样例输出 3
我的回答是:
这道题是求两个正整数的最大公约数,可以使用辗转相除法来解决。具体步骤如下:先用较小的数去除较大的数,得到余数,然后再用上一轮的余数去除这一轮的余数,直到余数为0为止,此时除数就是最大公约数。
下面是使用Python实现的代码:
a, b = map(int, input().split())
while b:
a, b = b, a % b
print(a)
希望我的回答能帮到你。如果你还有其他问题,可以继续问我哦。
题目描述 给定两个正整数aa、bb,求它们的最大公约数。 输入描述 两个正整数aa、bb(1≤a≤103,1≤b≤1031≤a≤103,1≤b≤103)。 输出描述 输出aa和bb的最大公约数。 样例输入1 12 16 样例输出1 4用C语言
以下是使用辗转相除法求解两个正整数的最大公约数的 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;
scanf("%d%d", &a, &b);
int ans = gcd(a, b);
printf("%d", ans);
return 0;
}
```
其中 `gcd(a, b)` 是一个递归函数,用于求解 `a` 和 `b` 的最大公约数。辗转相除法的具体实现方法如下:
- 如果 `b` 等于 0,结束递归,返回 `a`;
- 否则,返回 `gcd(b, a%b)`。
在主函数中,读入两个整数 `a` 和 `b`,调用 `gcd` 函数求解它们的最大公约数,然后输出结果。