1. 程式人生 > >演算法模板之歐幾里得演算法(HDU1019 Least Common Multiple)

演算法模板之歐幾里得演算法(HDU1019 Least Common Multiple)

模板總結歸納:
//歐幾里得演算法(輾轉相除法) 
//O(logN)

/*int gcd(int a, int b)
{
	return b == 0 ? a : gcd(b, a % b);
} 
*/
實戰模板題 :HDU1019 Least Common Multiple
#include<iostream>
#include<cstdio>

using namespace std;

int gcd(int a, int b)
{
	return b == 0 ? a : gcd(b, a % b);
} 

int main()
{
	int n;
	cin >> n;
	while(n--)
	{
		int m, a;
		int ans = 1;
		cin >> m;
		while(m--)
		{
			cin >> a;
			ans = a / gcd(a, ans) * ans; // 注意此處需要防止溢位 
		}
		cout << ans << endl;
	}
	return 0;
}