1. 程式人生 > >CSU 1124: 最終時刻(求所有數的最小公倍數)

CSU 1124: 最終時刻(求所有數的最小公倍數)

題目:

Description

外太空又發生戰爭了.機器人王國決定用N架炮臺消滅敵人的供需庫,但是無奈每架炮臺的威力有限,現在國王得到一個訊息:如果在某一時刻N架炮臺同時打到敵人的供需庫,那麼這個供需庫就會爆炸.當然炮臺的威力不累計.也就是說如果某一時刻有N-1架炮臺的大炮同時打到敵人的供需庫,下一時刻只有第N架炮臺的大炮打到敵人供需庫的話,供需庫是不會爆炸的.現在國王想知最早能在什麼時候炸掉敵人的供庫.每臺大炮的發射間隔是一定的.所有炮從0時刻同時開始發射.

Input

每組資料兩行,第一行輸入N,表示炮臺的數目,接下來的一行有N個數a_1,a_2...a_n,表示每個炮臺的發射間隔,N<=1000.a_i<=2^32

Output

每組資料輸出一行,表示敵人的供需庫最早被炸燬的時間.資料保證最後結果<=2^63-1

Sample Input

2
2 3
3
1 2 3

Sample Output

6
6

程式碼:

#include<iostream>
#include<stdio.h>
using namespace std;

long long gcd(long long a, long long b)
{
	if (b==0)return a;
	return gcd(b, a%b);
}

int main()
{
	long long n, b, ans;
	while (scanf
("%lld", &n) != EOF) { ans = 1; while (n--) { scanf("%lld", &b); ans *= b / gcd(ans, b); } printf("%lld\n", ans); } return 0; }