Description
求n个数的最小公倍数。
Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
Sample Input
2 4 6
3 2 5 7
Sample Ouptut
12
70
最大公约数和最小公倍数是有关系的–>n*m等于他们俩最大公约数和最小公倍数的乘积
代码
#include<iostream>
#include<algorithm>
#include<string.h>
#include<queue>
#include<vector>
#include<stdio.h>
#define ll long long
#define inf 0x3f3f3f3f
using namespace std;
ll gcd(ll a,ll b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
int main()
{
int n;
while(~scanf("%d",&n))
{
ll ans,x;
scanf("%lld",&ans);
for(int i=1; i<n; ++i)
{
scanf("%lld",&x);
if(ans<x)
{
ll t=x;
x=ans;
ans=t;
}
ans=(ans*x)/gcd(ans,x);
}
printf("%lld\n",ans);
}
}