用C语言写一个最小公倍数的函数
时间: 2023-05-26 15:04:23 浏览: 86
```
#include <stdio.h>
int lcm(int a, int b);
int main()
{
int num1, num2, LCM;
printf("输入两个正整数:");
scanf("%d %d", &num1, &num2);
if (num1 <= 0 || num2 <= 0)
{
printf("输入的数字必须是正整数\n");
return 0;
}
LCM = lcm(num1, num2);
printf("最小公倍数为:%d\n", LCM);
return 0;
}
int lcm(int a, int b)
{
int max;
max = (a > b) ? a : b;
while (1)
{
if (max % a == 0 && max % b == 0)
return max;
++max;
}
}
```
这个函数接收两个正整数作为参数,并返回它们的最小公倍数。它首先检查输入数据是否是正整数,然后使用一个循环来计算最小公倍数。
相关问题
c语言求最小公倍数函数
最小公倍数是指两个数的公共倍数中最小的一个,我们可以用以下的C语言函数来求最小公倍数:
```c
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int num1, num2;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
printf("它们的最小公倍数是:%d", lcm(num1, num2));
return 0;
}
```
在这个函数中,我们首先定义了一个计算最大公约数的函数gcd,然后利用这个函数来求得两个数的最小公倍数lcm。在主函数中,我们先输入两个整数,然后调用lcm函数来输出它们的最小公倍数。
C语言求最小公倍数函数
在C语言中,计算两个整数的最小公倍数(LCM,Least Common Multiple)可以采用欧几里得算法(也称为辗转相除法),该算法基于这样一个性质:对于任意两个正整数a和b,它们的最大公约数(GCD)乘以a除以GCD的结果与最大公约数乘以b除以GCD的结果相等,等于它们的最小公倍数。
下面是一个简单的C函数实现,用于计算两个整数的最小公倍数:
```c
#include <stdio.h>
// 定义一个函数来计算最大公约数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 计算最小公倍数
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
// 主函数示例
int main() {
int num1, num2;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
// 调用lcm函数并打印结果
int result = lcm(num1, num2);
printf("两数的最小公倍数是:%d\n", result);
return 0;
}
```
在这个例子中,`gcd`函数首先递归地找到两个数的最大公约数,然后`lcm`函数利用这个gcd值来计算最小公倍数。
阅读全文