HDOJ-2028-Lowest Common Multiple Plus
阿新 • • 發佈:2021-01-16
技術標籤:寒假日曆
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;
}