题目:点击打开链接
代码一:
#include<stdio.h>
long long a1[100];
long gcd(long long a,long long b)//注意不要丢失精度
{
int c;
while(b%a&&a!=0)
{
if(a>b)
{
c=b;
b=a;
a=c;
}
b=b%a;
}
return a;
}
long lcm(long long a,long long b)
{
return a*b/gcd(a,b);
}
int main()
{
int t;
int i;
scanf("%d",&t);
while(t--)
{
int a;
scanf("%d",&a);
for(i=0;i<a;i++)
scanf("%lld",&a1[i]);
for(i=0;i<a-1;i++)
{
a1[i+1]=lcm(a1[i],a1[i+1]);
}
printf("%lld\n",a1[a-1]);
}
return 0;
}
代码二:
#include<stdio.h>
int a1[100];
int gcd(int a,int b)//注意不要丢失精度
{
int c;
while(b%a&&a!=0)
{
if(a>b)
{
c=b;
b=a;
a=c;
}
b=b%a;
}
return a;
}
int lcm(int a,int b)
{
return a/gcd(a,b)*b;//先除后乘避免丢失精度
}
int main()
{
int t;
int i;
scanf("%d",&t);
while(t--)
{
int a;
scanf("%d",&a);
for(i=0;i<a;i++)
scanf("%d",&a1[i]);
for(i=0;i<a-1;i++)
{
a1[i+1]=lcm(a1[i],a1[i+1]);
}
printf("%d\n",a1[a-1]);
}
return 0;
}