C语言编写一程序:输入两个正整数a和b,求其最小公倍数
时间: 2024-05-13 20:15:04 浏览: 13
以下是C语言程序,用于求两个正整数a和b的最小公倍数:
```c
#include <stdio.h>
int main() {
int a, b, max;
printf("请输入两个正整数a和b:\n");
scanf("%d %d", &a, &b);
// 求出a和b的最大公约数
for (int i = 1; i <= a && i <= b; i++) {
if (a % i == 0 && b % i == 0) {
max = i;
}
}
// 最小公倍数为a和b的乘积除以最大公约数
int min = a * b / max;
printf("最小公倍数为:%d\n", min);
return 0;
}
```
运行程序后,输入两个正整数a和b,程序会输出它们的最小公倍数。
相关问题
用C语言编写程序输入两个正整数M和N求其最大公因数和最小公倍数
好的,您可以使用以下程序来求得两个正整数M和N的最大公因数和最小公倍数:
```c
#include <stdio.h>
int main() {
int m, n, i, gcd, lcm;
printf("请输入两个正整数M和N:");
scanf("%d%d", &m, &n);
// 求最大公因数
for (i = 1; i <= m && i <= n; ++i) {
if (m % i == 0 && n % i == 0)
gcd = i;
}
// 求最小公倍数
lcm = m * n / gcd;
printf("最大公因数GCD是:%d\n", gcd);
printf("最小公倍数LCM是:%d\n", lcm);
return 0;
}
```
注意,程序中的求最大公因数的方法使用了辗转相除法,但是这里我们选择了更容易理解的枚举法。如果M和N很大,使用枚举法计算效率可能比较低,可以采用更高效的算法,例如辗转相除法或更高级的欧几里得算法。
用C语言编写:输入两个正整数m和n,求其最大公约数和最小公倍数。
C语言代码如下:
```
#include <stdio.h>
#include <stdlib.h>
int gcd(int m, int n) {
int r;
while (n != 0) {
r = m % n;
m = n;
n = r;
}
return m;
}
int lcm(int m, int n) {
return m * n / gcd(m, n);
}
int main() {
int m, n;
printf("请输入两个正整数: ");
scanf("%d%d", &m, &n);
printf("它们的最大公约数是: %d\n", gcd(m, n));
printf("它们的最小公倍数是: %d\n", lcm(m, n));
return 0;
}
```