n个数的最小公倍数

Description
求n个整数的最小公倍数

Input
多组测试数据,先输入整数T表示组数 然后每行先输入1个整数n,后面输入n个整数k1 k2…kn

Output
求k1 k2 …kn的最小公倍数

Sample Input
1
3 12 18 6
Sample Output
36
参考文章:https://blog.csdn.net/weixin_43272781/article/details/86547908

  #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 n;
    	while(scanf("%d",&n)!=EOF){
    		int i,j;  
    		for(i=0;i<n;i++){
    			int t;
    			scanf("%d",&t);
    			int array[t];
    			for(j=0;j<t;j++){
    			
    			scanf("%d",&array[j]);
    			
    		}		 
    		    int result = doLCM(array,t);  
    		    printf("%d\n",result);  
    		}
    	} 
        return 0;  
    }

全部评论

相关推荐

11-28 17:48
中山大学 C++
点赞 评论 收藏
分享
斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务