(HDU)1019 --Least Common Multiple(最小公倍数)
生活随笔
收集整理的這篇文章主要介紹了
(HDU)1019 --Least Common Multiple(最小公倍数)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
描述
一組正整數(shù)的最小公倍數(shù)(LCM)是可以被集合中所有數(shù)字整除的最小正整數(shù)。 例如,5,7和15的LCM為105。輸入
輸入將包含多個(gè)問題實(shí)例。 輸入的第一行將包含指明問題實(shí)例數(shù)量的單個(gè)整數(shù)。 每個(gè)實(shí)例將由形式為m n1 n2 n3 ... nm的單行組成,其中m是集合中的整數(shù)數(shù)目,n1 ... nm是整數(shù)。 所有整數(shù)將為正,位于32位整數(shù)的范圍內(nèi)。輸出
對(duì)于每個(gè)問題實(shí)例,輸出包含相應(yīng)LCM的單行。 所有結(jié)果將位于32位整數(shù)的范圍內(nèi)。樣例輸入
2
3 5 7 15
6 4 10296 936 1287 792 1
樣例輸出
105
10296 查看問題
求最小公倍數(shù)問題,一個(gè)蠢辦法是從第一個(gè)開始一個(gè)個(gè)試:
1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 6 int main() 7 { 8 9 int n,m,a,k; 10 while(scanf("%d",&n)!=EOF&&n) 11 { 12 while(n--) 13 { 14 scanf("%d",&m); 15 int t=1; 16 while(m--) 17 { 18 int i=2; 19 scanf("%d",&a); 20 k=a; 21 while(a%t!=0) 22 { 23 a=k*i; 24 i++; 25 } 26 t=a; 27 } 28 printf("%d\n",a); 29 } 30 } 31 return 0; 32 } 暴力法這題可以找出里面最大的正整數(shù),再進(jìn)行翻倍找最小公倍數(shù)。
1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 6 int main() 7 { 8 int t,n,i,num[100010]; 9 while(~scanf("%d",&t)&& t) 10 { 11 while(t--) 12 { 13 int lcm,max_num=0; 14 scanf("%d",&n); 15 for(i=1;i<=n;i++) 16 { 17 scanf("%d",&num[i]); 18 if(num[i]>max_num) max_num=num[i]; 19 } 20 21 lcm=max_num; 22 for(i=1;i<=n;i++) 23 while(lcm%num[i]!=0) 24 lcm+=max_num; 25 printf("%d\n",lcm); 26 } 27 } 28 return 0; 29 } 代碼(有問題)不過這個(gè)代碼提交似乎會(huì)WA,目前原因未知。
轉(zhuǎn)載于:https://www.cnblogs.com/ACDoge/p/6125498.html
總結(jié)
以上是生活随笔為你收集整理的(HDU)1019 --Least Common Multiple(最小公倍数)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dex2jar官网和jdgui官网链接
- 下一篇: 图的存储--十字链表