用C语言写一段代码,求任意输入两个正整数的最小公倍数和最大公约数
时间: 2024-05-02 12:22:04 浏览: 92
```
#include <stdio.h>
int main()
{
int num1, num2, max, min, i, gcd, lcm;
printf("请输入两个正整数:");
scanf("%d %d", &num1, &num2);
// 求最大值和最小值
if (num1 > num2) {
max = num1;
min = num2;
} else {
max = num2;
min = num1;
}
// 求最大公约数
for (i = min; i > 0; i--) {
if (min % i == 0 && max % i == 0) {
gcd = i;
break;
}
}
// 求最小公倍数
lcm = (num1 * num2) / gcd;
printf("最大公约数为:%d\n", gcd);
printf("最小公倍数为:%d\n", lcm);
return 0;
}
```
相关问题
帮我用c语言写一段代码:输入两个正整数m和n,求其最大公约数和最小公倍数。
好的,以下是代码:
```c
#include <stdio.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("请输入两个正整数m和n:");
scanf("%d %d", &m, &n);
printf("它们的最大公约数是%d,最小公倍数是%d\n", gcd(m, n), lcm(m, n));
return 0;
}
```
希望能帮到您!
题目描述 从键盘输入两个正整数,求这两个正整数的最小公倍数和最大公约数,并输出。 输入 输入包括一行。 两个以空格分开的正整数。 输出 两个整数的最小公倍数和最大公约数。c语言编写代码
题目要求你编写一段 C 语言代码,用于计算两个输入的正整数的最大公约数(GCD,Greatest Common Divisor)和最小公倍数(LCM,Least Common Multiple)。以下是完成这个任务的基本步骤:
1. 使用 `scanf` 函数读取两个正整数。
2. 对于计算 GCD,可以采用欧几里得算法(Euclidean Algorithm),它基于辗转相除原理,直到余数为零,此时除数就是两数的最大公约数。
3. 计算 LCM,公式通常是:`lcm(a, b) = |a * b| / gcd(a, b)`。由于 `gcd` 已经求出,你可以直接应用该公式。
4. 最后,使用 `printf` 输出结果。
下面是一个简单的示例代码:
```c
#include <stdio.h>
// 求最大公约数的函数
int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
// 主函数
int main() {
int num1, num2;
// 读取输入的两个正整数
scanf("%d %d", &num1, &num2);
// 计算 GCD 和 LCM
int lcm = abs(num1 * num2) / gcd(num1, num2);
// 输出结果
printf("The greatest common divisor (GCD) of %d and %d is: %d\n", num1, num2, gcd(num1, num2));
printf("The least common multiple (LCM) of %d and %d is: %d\n", num1, num2, lcm);
return 0;
}
```
阅读全文