2028 Lowest Common Multiple Plus(最小公倍数)
2014-07-09 11:25
309 查看
Lowest Common Multiple Plus
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 32233 Accepted Submission(s): 13126
Problem Description
求n个数的最小公倍数。
Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
Sample Input
2 4 6 3 2 5 7
Sample Output
12 70
//思路一:①设计一个求两数最小公倍数的子函数 // ②求两数的最小公倍数,再用得到的最小公倍数和下一个数求最小公倍数,一直求到最后一个数的所得即为所求 #include<iostream> using namespace std; int gbs(int a,int b) { int m,n,i,t; if(a<b) {t=a;a=b;b=t;} for(i=b;i>0;i--) { if((a%i==0)&&(b%i==0)) { m=a/i; n=b/i; break; } } return m*n*i; } void main() { int n,m[50],i,lcm; while(cin>>n) { for(i=0;i<n;i++) {cin>>m[i];} lcm=gbs(m[0],m[1]); for(i=2;i<n;i++) { lcm=gbs(lcm,m[i]); } cout<<lcm<<endl; } } 思路二(MAX容易超界,不推荐):1.几个数的最小公倍数必在其最大值与它们的积之间 2.从最大值开始循环,直到找到第一个能将所有数整除的数,该数即为所有数的最小公倍数 #include<iostream> using namespace std; void main() { long int n,m[100],i,j,max,MAX,tof; while(cin>>n) { max=0;MAX=1; for(i=0;i<n;i++) { cin>>m[i]; MAX*=m[i]; if(m[i]>max) max=m[i]; } for(i=max;i<=MAX;i++) { tof=0; for(j=0;j<n;j++) { if(i%m[j]==0) tof=1; else {tof=0;break;} } if(tof==1) { cout<<i<<endl; break; } } } } //思路三:①求两数的最小公倍数:1.辗转相除求最大公约数 2.利用最大公约数求最小公倍数 // ②用求得的最小公倍数和下一个数重复上一步骤直到结束
相关文章推荐
- hdu 2028 Lowest Common Multiple Plus(最大公约数最小公倍数)(备战LQB)
- HDU 2028 Lowest Common Multiple Plus(最小公倍数)
- HDOJ_杭电2028_Lowest Common Multiple Plus 多个数字的最小公倍数
- hdu 2028 Lowest Common Multiple Plus(最小公倍数)
- hdoj 2028 Lowest Common Multiple Plus (最小公倍数,最大公约数)
- hdu 2028 Lowest Common Multiple Plus(最小公倍数)
- 【杭电oj】2028-Lowest Common Multiple Plus(最小公倍数)(水)
- HDU 2028 - Lowest Common Multiple Plus (最小公倍数)
- Lowest Common Multiple Plus(最小公倍数)
- hdu 2028 Lowest Common Multiple Plus (n个数的最大公倍数)
- hdu 2028 Lowest Common Multiple Plus (n个数的最大公倍数)
- Lowest Common Multiple Plus(最小公倍数)
- 杭电 2028 Lowest Common Multiple Plus
- HDU:2028 lowest common multiple plus
- HDU 2028 Lowest Common Multiple Plus
- hdu 2028 Lowest Common Multiple Plus
- hdoj-2028-Lowest common multiple plus
- Lowest Common Multiple Plus(杭电2028)
- [热身题][hdoj_2028]Lowest Common Multiple Plus
- 【hdoj2028】Lowest Common Multiple Plus