使用c语言求两个数中最大公约数和最小公倍数 输入在一行中给出两个正整数M和N(≤1000) 在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔
时间: 2024-06-16 13:04:20 浏览: 128
大学经典C语言编程试题.doc
要使用C语言求两个数的最大公约数和最小公倍数,可以使用辗转相除法来实现。
首先,我们定义一个函数来计算两个数的最大公约数。辗转相除法的基本思想是,用较大的数除以较小的数,然后用余数替换较大的数,再用新的较大的数除以新的较小的数,如此循环,直到余数为0。此时,较小的数就是最大公约数。
接下来,我们定义一个函数来计算两个数的最小公倍数。最小公倍数可以通过两个数的乘积除以它们的最大公约数来计算得到。
下面是使用C语言实现的代码:
```c
#include <stdio.h>
// 计算最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 计算最小公倍数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int M, N;
scanf("%d %d", &M, &N);
int max_gcd = gcd(M, N);
int min_lcm = lcm(M, N);
printf("%d %d\n", max_gcd, min_lcm);
return 0;
}
```
输入示例:
```
12 18
```
输出示例:
```
6 36
```
阅读全文