C语言实现多个数的最大公倍数
来源:岁月联盟
时间:2012-09-03
#include <stdio.h>
//获得最小公倍数
int doLCM(int* array,int size){
int x,y,temp,gcd=array[0],i,result=1;
for(i=0;(i+1)<size;i++){
x=gcd;
y=array[i+1];
//保证x>y
if(x < y){
temp = y;
y = x;
x = temp;
}
gcd = getGCD(x,y);
}
//将每个数除以最大公约数,然后相乘
for(i=0;i<size;i++){
result *= array[i]/gcd;
}
//最后再乘以最大公约数
return result*gcd;
}
//获取最大公约数
int getGCD(int a,int b){
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;
}
上一篇:一个计时器的实现