. 写一个函数用辗转相除法求两个数的最大公约数,主函数通过函数调用方式求两个数的最 大公约数,两个数的值通过键盘输入。
时间: 2024-02-04 20:15:04 浏览: 44
好的,以下是实现辗转相除法求两个数的最大公约数的函数代码:
```c++
#include <iostream>
using namespace std;
int gcd(int a, int b) {
int r;
while (b != 0) {
r = a % b;
a = b;
b = r;
}
return a;
}
int main() {
int num1, num2;
cout << "请输入两个整数,用空格隔开:" << endl;
cin >> num1 >> num2;
int result = gcd(num1, num2);
cout << "最大公约数是:" << result << endl;
return 0;
}
```
在上述代码中,`gcd()`函数使用了辗转相除法求出两个数的最大公约数,主函数中调用`gcd()`函数并输出结果。用户需要通过键盘输入两个整数,程序会自动计算它们的最大公约数并输出。
相关问题
输入两个整数,输出它们的最大公约数。编一函数gcd用辗转相除法实现求两个数的公约数。
以下是使用辗转相除法实现求两个数的最大公约数的 Python 代码:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
print("它们的最大公约数是:", gcd(a, b))
```
在这里,我们定义一个名为 `gcd` 的函数,它接受两个整数参数 `a` 和 `b`。如果 `b` 等于 0,那么返回 `a`,否则递归调用 `gcd` 函数,传入 `b` 和 `a` 除以 `b` 的余数。所以,每次函数调用时,`a` 和 `b` 的值会交换,直到 `b` 为 0,此时 `a` 就是两个数的最大公约数。最后在主函数中读取两个整数,调用 `gcd` 函数并输出结果。
c语言:用辗转相除法求两个数的最大公约数和最小公倍数
辗转相除法(又称欧几里德算法)是求两个数的最大公约数的常用方法。其基本思想是利用两数的除法余数性质,不断用较小的数去除较大的数,直到余数为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 lcm(int a, int b) {
int g = gcd(a, b);
return a * b / g;
}
int main() {
int a, b;
printf("请输入两个正整数:\n");
scanf("%d%d", &a, &b);
printf("%d和%d的最大公约数为%d,最小公倍数为%d\n", a, b, gcd(a, b), lcm(a, b));
return 0;
}
```
在程序中,我们定义了两个函数gcd和lcm,分别用于计算最大公约数和最小公倍数。在gcd函数中,我们使用了辗转相除法,不断用b去除a,然后用a除以余数r,直到r为0,此时a就是最大公约数。在lcm函数中,我们先计算出最大公约数g,然后用a和b的乘积除以g,就可以得到最小公倍数。最后在主函数中,我们读入用户输入的两个整数a和b,然后调用gcd和lcm函数,输出结果即可。
需要注意的是,上述代码中并没有对用户输入的数据进行合法性检查,输入的数应该是正整数,否则程序可能会出现错误。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)