C语言键盘输入两个正整数m,n计算并输出其最大公约数
时间: 2024-05-04 14:20:09 浏览: 195
您好,以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int m, n, i, gcd;
printf("请输入两个正整数m和n:\n");
scanf("%d %d", &m, &n);
for (i = 1; i <= m && i <= n; i++) {
if (m % i == 0 && n % i == 0) {
gcd = i;
}
}
printf("最大公约数为:%d\n", gcd);
return 0;
}
```
代码思路:
1. 首先,我们通过 `scanf` 函数从键盘输入两个正整数 `m` 和 `n`;
2. 然后,我们使用 `for` 循环从 1 开始,逐个判断 `i` 是否是 `m` 和 `n` 的公约数;
3. 如果 `i` 是 `m` 和 `n` 的公约数,则将其赋值给变量 `gcd`;
4. 循环结束后,我们输出变量 `gcd` 的值,即为 `m` 和 `n` 的最大公约数。
希望可以帮到您!
相关问题
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`,然后使用辗转相减法求出它们的最大公约数,最后输出结果。
由键盘输入两个正整数m、n,计算它们的最大公约数。 用C语言编程,用循环语句
当然可以,下面是一个简单的C语言程序,使用循环来计算两个正整数的最大公约数(GCD):
```c
#include <stdio.h>
// 定义一个函数,采用循环来计算两个数的GCD
int gcd_by_loop(int m, int n) {
if (n == 0) { // 如果n为0,返回m作为GCD
return m;
} else {
return gcd_by_loop(n, m % n); // 递归地更新m和n,直到n变为0
}
}
int main() {
int m, n;
printf("请输入两个正整数 m 和 n:\n");
scanf("%d %d", &m, &n);
int result = gcd_by_loop(m, n);
printf("这两个数的最大公约数是:%d\n", result);
return 0;
}
```
这个程序首先检查n是否为0,如果是则返回m;如果不是,就通过递归的方式不断将问题规模缩小,即计算m除以n的余数和n之间的GCD。当n变成0时,GCD即为m。
阅读全文
相关推荐
















