hdu--2028--Lowest Common Multiple Plus--LCM--GCD

Lowest Common Multiple Plus

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 107359    Accepted Submission(s): 44492

Problem Description
求n个数的最小公倍数。
 
Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
 
Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
 
Sample Input
2 4 6 3 2 5 7
 
Sample Output
12 70

主要用来记录一下最小公倍数和最大公因数的求法.
 1 //#include <bits/stdc++.h> 
 2 #include <iostream>
 3 #include <cstring>
 4 #include <algorithm>
 5 #include <cctype>
 6 
 7 using namespace std;
 8 
 9 int gcd(int a,int b) {
10     return b ==  0 ? a : gcd(b,a % b);
11 }
12 
13 int lcm(int a,int b) {
14     return a / gcd(a,b) * b;
15 }
16 
17 int main()
18 {    
19     int n; 
20     int ans = 0,temp = 0;
21     while(~scanf("%d",&n)) {
22         ans = 0;
23         for(int i = 0;i < n;i++) {
24             scanf("%d",&temp);
25             if(i == 0) {
26                 ans = temp;
27                 continue;                
28             }
29             ans = lcm(ans,temp);
30         }
31         printf("%d
",ans);
32     }
33      return 0;
34 }

2021-02-10

原文地址:https://www.cnblogs.com/2015-16/p/14395381.html