Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数
这里最小公倍数的求法是先找出所有数的最大公因数,用前n-1个数 ÷ 最大公因数再 × 第个数即为最小公倍数。
#include<stdio.h>
int main()
{
int n,a[10],i,j,k,count;
int target;
while(scanf("%d",&n) != EOF)
{
target = 1;
for(i=0; i<n; i++)
{
scanf("%d",&a[i]); //默认用户按从小到大输入
}
for(i=a[0]; i>=1; i--) //找最大公因数,从a[0]向下找
{
count = 0;
for(j=0; j<n; j++)
{
if(a[j]%i == 0)
count++;
}
if(count == n)
{
k = i;
break;
}
}
printf("最大公因数:%d\n",k) ;
for(i=0; i<n-1; i++)
{
target = target*(a[i]/k);
}
target *= a[n-1];
printf("最小公倍数:%d",target);
}
return 0;
}