c语言,编写程序,输入两个正整数,输出两个数的最小公倍数和最大公因子。
时间: 2023-06-16 10:02:19 浏览: 96
以下是使用 C 语言编写的程序,可以输入两个正整数,输出它们的最小公倍数和最大公因数:
```
#include <stdio.h>
int main()
{
int num1, num2, i, gcd, lcm;
printf("请输入两个正整数:\n");
scanf("%d%d", &num1, &num2);
// 计算最大公因数
for (i = 1; i <= num1 && i <= num2; i++) {
if (num1 % i == 0 && num2 % i == 0) {
gcd = i;
}
}
// 计算最小公倍数
lcm = num1 * num2 / gcd;
printf("最大公因数为:%d\n", gcd);
printf("最小公倍数为:%d\n", lcm);
return 0;
}
```
程序的运行结果如下:
```
请输入两个正整数:
12 18
最大公因数为:6
最小公倍数为:36
```
相关问题
用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语言编写输入两个整数,输出他们的最大公约数和最小公倍数
好的,下面是 C 语言代码实现:
```c
#include <stdio.h>
int main()
{
int a, b, min, max, i, gcd;
printf("请输入两个整数:\n");
scanf("%d %d", &a, &b);
for(i = 1; i <= a && i <= b; ++i)
{
if(a % i == 0 && b % i == 0)
gcd = i;
}
max = a > b ? a : b;
while(1)
{
if(max % a == 0 && max % b == 0)
{
printf("最小公倍数为:%d\n", max);
break;
}
++max;
}
printf("最大公约数为:%d\n", gcd);
return 0;
}
```
首先,通过 `scanf` 函数输入两个整数 `a` 和 `b`。
然后,通过 `for` 循环计算最大公约数(`gcd`)。循环条件是 `i` 小于等于 `a` 和 `b` 中较小的那个数,每次循环中,如果 `i` 能同时整除 `a` 和 `b`,那么更新 `gcd` 的值。
接下来,通过 `while` 循环计算最小公倍数。循环条件是无限循环,每次循环中,如果 `max` 能同时整除 `a` 和 `b`,那么输出 `max` 的值,并跳出循环。否则,`max` 的值加一,继续循环。
最后,分别输出最大公约数和最小公倍数的值。