【题目】
【思路】将第一个传进来的数作为最大公约数,然后每传进一个数就和第一个数计算出最小公倍数并作为第一个数。
【代码】AC的C++代码如下:
#include <iostream> using namespace std; int gcd(int m,int n) { if (m < n) { int tmp = m; m = n; n = tmp; } return (n == 0) ? m : gcd(n,m % n); } long lcm(int a,int b) { return a / gcd(a,b) * b; } int main() { int n,num,result; while (cin >> n) { cin >> result; //先传入第一个数作为最小公倍数 while (--n) //传入剩下的n-1个数据 { cin >> num; result = lcm(result,num); } cout << result << endl; } return 0; }