用c语言实现任意输入 2 个正整数给自变量 x 和 y,要求求得它们之间的最大公约数和最 小公倍数
时间: 2024-02-21 19:59:39 浏览: 130
好的,以下是用 C 语言实现该算法的代码:
```c
#include <stdio.h>
// 求最大公约数
int gcd(int x, int y)
{
int temp;
while (y != 0)
{
temp = x % y;
x = y;
y = temp;
}
return x;
}
// 求最小公倍数
int lcm(int x, int y)
{
int temp = gcd(x, y);
return x * y / temp;
}
int main()
{
int x, y;
printf("请输入两个正整数:");
scanf("%d %d", &x, &y);
printf("%d和%d的最大公约数为:%d\n", x, y, gcd(x, y));
printf("%d和%d的最小公倍数为:%d\n", x, y, lcm(x, y));
return 0;
}
```
首先,我们定义了两个函数:gcd() 和 lcm(),分别用于求最大公约数和最小公倍数。其中,gcd() 函数使用了欧几里得算法,它不停地用较小的数去除较大的数,直到较大的数变成了 0,此时较小的数就是最大公约数。而 lcm() 函数则利用最大公约数的性质求得最小公倍数。
然后,在主函数中,我们通过 scanf() 函数获取用户输入的两个正整数 x 和 y。接下来,我们调用 gcd() 和 lcm() 函数分别求出它们的最大公约数和最小公倍数,并将结果输出。
希望这个代码能够帮助到你,如果有任何问题,请随时问我。
阅读全文
相关推荐





