1. 程式人生 > 其它 >HDOJ-2028-Lowest Common Multiple Plus

HDOJ-2028-Lowest Common Multiple Plus

技術標籤:寒假日曆

Problem Description
求n個數的最小公倍數。

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

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

Sample Input
2 4 6
3 2 5 7

Sample Output
12
70
//求n個數的最小公倍數,我們可以這樣想,求倆個數的最小公倍數,我們很好搞,假設有兩個數,a,b;
,藉助公式法,min=a*b/max;(min:最小公倍數,max:最大公約數;)那麼我們只需要求其最大公約數,最小公倍數就容易了。同理求n個數的,一樣,如a1,a2,a3;先求(a1,a2)的最小公倍數min,再a2=min;再求(a2,a3)的最小公倍數,即為這三個數的最小公倍數;n個數亦如此:

#include<stdio.h>
int aaa(int a,int b);
int main()
{
	int n,i,min;
	int str;
	while(scanf("%d",&n)!=EOF){
		scanf("%d",&min);
		for(i=1;i<n;i++){
			scanf("%d",&str);
			min=aaa(min,str); 
		}
		printf("%d\n",min);	
	}
	return 0;
}
//計算兩個數的最小公倍數 
int aaa(int a,int b) { int r,item,a1,b1; a1=a,b1=b;//記錄a,b; //求最大公約數 r=a%b; while(r!=0){ a=b; b=r; r=a%b; } // item=a1/b*b1;//求兩個數的最小公倍數,公式法 return item; }