求三个(多个)数的最小公倍数c语言(不要用枚举法,第一个注释中详细讲解问题)0
//一般先求最小值,再求最大公约数,最后求最小公倍数,除此之外还有没有比这更多的算法,大神们帮帮忙谢谢//#includeintmain(){inta[10]={0},b=0,k=0,j=0,c=1,d=0;scanf("%... //一般先求最小值,再求最大公约数,最后求最小公倍数,除此之外还有没有比这更多的算法,大神们帮帮忙谢谢//
#include
int main()
{
int a[10]={0},b=0,k=0,j=0,c=1,d=0;
scanf("%d",&b);
for(int i=0;i
{
scanf("%d",&a[i]);
}
for(int l=0;l
{
if(a[l]
{
d=a[l+1];
a[l+1]=a[l];
a[l]=d; //求出最大值会改变数组值,要想不改变用交换语句//
}
}
for(j=a[b-1];j>=1;j--) //小心越界//
{
for(k=0;k
{
if(a[k]%j==0)
{
continue;
}
else
{
break;
}
}
if(k==b)
{
break;
}
}
for(int m=0;m
{
c*=a[m]/j;
//printf("%d %d %d ",a[m],j,c);
}
printf("%d",j*c);
return 0;
}
//第一个注释打错一个子“多”改为“好” 展开