#include <stdio.h>
//获得最小公倍数
int doLCM(int* array,int size){
int x,y,num=array[0],i,gcd;
//去数组的第一和第二个数,计算它们的公倍数,然后再取第三个数,
//和之前的公倍数计算它们的公倍数,直到只有一个数。
for(i=0;(i+1)<size;i++){
x=num;
y=array[i+1];
//计算公约数
gcd = getGCD(x,y);
//计算公倍数
num = x/gcd * y/gcd * gcd;
}
return num;
}
//获取最大公约数
int getGCD(int a,int b){
int temp;
if(a < b){
temp = a;
a = b;
b = temp;
}
if(a%b == 0){
return b;
}else{
return getGCD(b,a%b);
}
}
int main(void){
int array[3] = {144,24,36};
int result = doLCM(array,3);
printf("%d\n",result);
return 0;
}
C语言实现多个数的最小公倍数
最新推荐文章于 2024-06-20 23:50:49 发布