Lowest Common Multiple Plus hd 2028

q923714892發表於2020-04-06
Problem Description
求n個數的最小公倍數。


Input
輸入包含多個測試例項,每個測試例項的開始是一個正整數n,然後是n個正整數。


Output
為每組測試資料輸出它們的最小公倍數,每個測試例項的輸出佔一行。你可以假設最後的輸出是一個32位的整數。


Sample Input
2 4 6
3 2 5 7


Sample Output
12

70

#include<stdio.h>  
__int64 GCD(__int64 x,__int64 y)  
{  
    if(x%y==0)  
    return y;  
    else   
    return GCD(y,x%y);  
}  
__int64 LCM(__int64 x,__int64 y)  
{  
    return x*y/GCD(x,y);  
}  
int main()  
{  
    __int64 a[100],n,i; 
	while(scanf("%I64d",&n)!=EOF)
	{
  		for(i=0;i<n;i++)
    	scanf("%I64d",&a[i]);
    	for(i=0;i<n-1;i++)
		{
			a[i+1]=LCM(a[i],a[i+1]);
		}  
        printf("%I64d\n",a[n-1]);  
    } 
}  


相關文章