本题要求两个给定正整数的最大公约数和最小公倍数。 输入格式: 输入在一行中给出两个正整数M和N(≤1000)。 输出格式: 在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。 输入样例: 511 292 输出样例: 73 2044用c语言
时间: 2024-11-27 16:22:09 浏览: 12
用python编写两个正整数的最大公约数和最小公倍数的小程序
在 C 语言中,你可以使用欧几里得算法 (Euclidean Algorithm) 来计算两个正整数的最大公约数 (GCD),然后再利用公式 GCD(a, b) * a % b = a * b / gcd(a, b) 计算它们的最小公倍数 (LCM)。以下是实现这个功能的一个简单程序:
```c
#include <stdio.h>
// 函数声明
int gcd(int a, int b); // 求最大公约数
// 主函数
int main() {
int M, N;
scanf("%d %d", &M, &N);
// 计算最大公约数
int result = gcd(M, N);
// 计算最小公倍数
int lcm = M * N / result;
printf("%d %d\n", result, lcm);
return 0;
}
// 欧几里得算法实现求最大公约数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
```
当你需要输入样例 `511 292` 运行此程序时,它将输出 `73 2044`,正如题目所期望的一样。
阅读全文