用c语言写 输入2个正整数,输出它们的最大公约数和最小公倍数 这个程序
时间: 2024-05-14 18:13:17 浏览: 111
您好,这是一个关于 C 语言的问题,很高兴为您解答。下面是代码示例:
```c
#include <stdio.h>
int gcd(int a, int b); // 声明最大公约数函数
int lcm(int a, int b); // 声明最小公倍数函数
int main()
{
int a, b, max, min;
printf("请输入两个正整数:\n");
scanf("%d %d", &a, &b);
max = gcd(a, b); // 计算最大公约数
min = lcm(a, b); // 计算最小公倍数
printf("%d 和 %d 的最大公约数是:%d\n", a, b, max); // 输出最大公约数
printf("%d 和 %d 的最小公倍数是:%d\n", a, b, min); // 输出最小公倍数
return 0;
}
int gcd(int a, int b)
{
int t;
while (b != 0) // 辗转相除法求最大公约数
{
t = b;
b = a % b;
a = t;
}
return a;
}
int lcm(int a, int b)
{
int max;
max = (a > b) ? a : b;
while (1)
{
if (max % a == 0 && max % b == 0) // 找到最小公倍数
{
break;
}
++max;
}
return max;
}
```
希望能够解决您的问题。如果您还有其他问题,可以随时问我。
阅读全文