编程实现求两个正整数的最大公约数
时间: 2023-12-25 12:47:02 浏览: 76
你好!可以使用欧几里得算法来求得两个正整数的最大公约数。算法如下:
1. 如果一个数为0,返回另一个数作为最大公约数;
2. 否则,用较小的数除以较大的数并取余数;
3. 将较大的数赋值为较小的数,较小的数赋值为余数,返回第2步。
以下是一个示例代码实现:
```
int GCD(int a, int b)
{
if (a == 0)
return b;
else
return GCD(b % a, a);
}
```
以上就是求两个正整数的最大公约数的方法,希望对你有所帮助!
相关问题
用matlab编程实现求两个正整数的最大公约数和最小公倍数,其中两个正整数由键盘输入。
可以使用辗转相除法求最大公约数,最小公倍数可以用两数乘积除以最大公约数计算。以下是示例代码:
```matlab
% 从键盘获取两个正整数
a = input('请输入第一个正整数:');
b = input('请输入第二个正整数:');
% 求最大公约数
while b ~= 0
r = mod(a,b);
a = b;
b = r;
end
gcd = a;
% 求最小公倍数
lcm = (a*b) / gcd;
% 输出结果
fprintf('最大公约数为:%d\n', gcd);
fprintf('最小公倍数为:%d\n', lcm);
```
运行程序后,会提示输入两个正整数,输入后即可得到最大公约数和最小公倍数的计算结果。
编程实现求两个正整数的最大公约数,要求计算最大公约数用函数fun(inta,intb)实现
好的,不会透露您的任何要求,以下是您所要求的编程实现:
```
int fun(int a, int b) {
if (b == 0) {
return a;
}
return fun(b, a % b);
}
```
这是一个使用递归实现的求两个正整数的最大公约数的函数。如果其中一个数为0,则另一个数即为最大公约数,如果两个数都不为0,则使用Euclidean算法继续递归计算它们的最大公约数。
阅读全文