用C+ +从键盘输入两个正整数,求它们的最大公约数。(如输入20 15,输出5;输入32 80 输出16,如果输入两个数不是两个正整数,输出“error”
时间: 2024-04-29 16:25:48 浏览: 11
```
#include <stdio.h>
int main()
{
int a, b, temp; // 定义两个整数和一个临时变量
printf("请输入两个正整数:\n");
if (scanf("%d%d", &a, &b) != 2 || a <= 0 || b <= 0) // 判断输入是否合法
{
printf("error\n");
return 0; // 输入不合法,直接结束程序
}
while (b != 0) // 辗转相除法求最大公约数
{
temp = a % b;
a = b;
b = temp;
}
printf("最大公约数为:%d\n", a); // 输出结果
return 0;
}
```
相关问题
从键盘输入两个正整数+求其最大公约数和最小公倍数
以下是Python实现从键盘输入两个正整数并求最大公约数和最小公倍数的代码:
```python
# 读取输入的两个正整数
num1, num2 = map(int, input().split())
# 求最大公约数
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# 求最小公倍数
def lcm(a, b):
return a * b // gcd(a, b)
# 输出结果
print(lcm(num1, num2), gcd(num1, num2))
```
输入两个正整数后,程序会先调用gcd函数求最大公约数,再调用lcm函数求最小公倍数,并将结果输出。
C语言从键盘输入两个正整数,求其最大公约数并输出结果。
可以使用辗转相减法来求解两个正整数的最大公约数。
以下是使用 C 语言编写的代码:
```c
#include <stdio.h>
int main() {
int num1, num2, gcd;
printf("请输入两个正整数:\n");
scanf("%d %d", &num1, &num2);
// 辗转相减法求最大公约数
while (num1 != num2) {
if (num1 > num2) {
num1 -= num2;
} else {
num2 -= num1;
}
}
gcd = num1; // 最大公约数即为较小的那个数
printf("最大公约数为:%d", gcd);
return 0;
}
```
在这个程序中,我们首先从键盘输入两个正整数 `num1` 和 `num2`,然后使用辗转相减法求出它们的最大公约数,最后输出结果。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)