题目描述
求n个数的最小公倍数
输入
多组测试数据,第一行一个数n (0 < n <= 10),下面n个数,在integer范围内。
输出
这n个数的最小公倍数。
代码实现
#include<stdio.h>
int judgezero(int *a,int n);
int main()
{
int n,i,j,t;
while(~scanf("%d",&n)){
//a[n]用来存放这n个数,b[n]用来存放余数
int a[n],b[n];
//首先考虑n为0的情况
if(n==0) printf("0\n");
//n不为零的情况
else{
for(i=0;i<n;i++) scanf("%d",&a[i]);
//j是被除数,我们并不知道它能有多大,
//姑且给它个较大的范围,看看能不能AC
for(j=a[0];j<10000;j++){
for(i=0;i<n;i++) b[i]=j%a[i];
//如果b[n]里的元素都为零,那么此时的j就是
//a[n]中的元素的最小公倍数
if(judgezero(b,n)==0){
printf("%d\n",j);
break;
}
}
}
}
return 0;
}
//判断一个整数数组里的元素是否都为零
int judgezero(int *a,int n){
int i,sum=0;
for(i=0;i<n;i++) sum+=a[i];
return sum;
}