读入两个正整数m和n,计算m和n的最大公约数,输入两个用空格隔开的正整数m和n,输出m和n的最大公约数,结尾注意输出换行
时间: 2024-12-20 07:22:01 浏览: 5
从键盘输入两个正整数,求这两个正整数的最小公倍数和最大公约数,并输出。
5星 · 资源好评率100%
在C语言中,我们可以使用欧几里得算法(Euclidean algorithm)来计算两个正整数的最大公约数(Greatest Common Divisor, GCD)。以下是一个简单的程序示例,它使用递归的方式来实现这个功能:
```c
#include <stdio.h>
// 定义函数来计算最大公约数
int gcd(int m, int n) {
if (n == 0) {
return m; // 如果n为0,则m就是最大公约数
} else {
return gcd(n, m % n); // 递归调用gcd函数,每次用较小数替换原来较大的数
}
}
int main() {
int m, n;
printf("请输入两个用空格隔开的正整数m和n: ");
scanf("%d %d", &m, &n);
int result = gcd(m, n);
printf("m和n的最大公约数是: %d\n", result);
return 0;
}
```
在这个程序中,`gcd`函数用于计算两个数的最大公约数。当第二个参数`n`为0时,递归结束,返回第一个参数`m`。否则,继续将`m`除以`n`的余数作为新的`m`,`n`保持不变,然后再次调用`gcd`。
阅读全文