程序生成c语言(从键盘输入2个正整数,求他们的最大公约数,2个正整数之间用空格隔开)
时间: 2023-06-26 07:09:13 浏览: 65
以下是一个简单的程序,可以从键盘输入两个正整数,然后计算它们的最大公约数,并输出结果。
```c
#include <stdio.h>
int main() {
int num1, num2, i, gcd;
printf("请输入两个正整数(用空格隔开):");
scanf("%d %d", &num1, &num2);
for (i = 1; i <= num1 && i <= num2; ++i) {
// 如果i既能整除num1,又能整除num2,那么i就是它们的公约数
if (num1 % i == 0 && num2 % i == 0) {
gcd = i;
}
}
printf("%d和%d的最大公约数是%d\n", num1, num2, gcd);
return 0;
}
```
注意,这个程序假设输入的两个数都是正整数。如果用户输入了非正整数或者其他类型的数据,程序可能会产生错误。在实际开发中,需要进行输入数据的合法性检查。
相关问题
C语言从键盘输入2个正整数,求它们的最大公约数。 Input 2个正整数,中间用空格隔开。 Output
可以使用辗转相除法求解两个正整数的最大公约数。具体的实现过程如下:
```c
#include <stdio.h>
int main() {
int a, b, temp;
printf("请输入两个正整数,中间用空格隔开:\n");
scanf("%d %d", &a, &b);
// 保证 a >= b
if (a < b) {
temp = a;
a = b;
b = temp;
}
// 辗转相除
while (b != 0) {
temp = a % b;
a = b;
b = temp;
}
printf("最大公约数为 %d\n", a);
return 0;
}
```
程序中先输入两个正整数,然后使用 if 语句将 a 和 b 交换,保证 a >= b。接着使用 while 循环进行辗转相除,最后输出最大公约数。
希望能够帮到你!
求两个正整数的最大公约数。 输入 两个正整数,空格隔开。 输出 一个整数,表示最大公约数。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,那么最大公约数就是第一个数;否则,我们使用辗转相除法求出两个数的余数,然后递归求解这个余数和第二个数的最大公约数。