您的位置:首页 > 其它

杭电2028

2014-04-10 15:45 162 查看

Lowest Common Multiple Plus

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 30938 Accepted Submission(s): 12542


Problem Description

求n个数的最小公倍数。

Input

输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。

Output

为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。

Sample Input

2 4 6
3 2 5 7


Sample Output

12
70


这道题也很简单,当时我用的是笨办法,遍历从最大数到所有数乘积这两数之中的每一个数,若遇整除者则停下。代码也能AC,代码如下:

#include <stdio.h>

int main (void)
{
int n,max,count,i;
long int j;
unsigned int a[100],sum;

while (scanf("%d",&n)!=EOF)
{
for (i=0; i<n; i++)
{
scanf("%d",&a[i]);
}

sum=1;

for(i=0; i<n; i++)
sum*=a[i];

max=a[0];

for(i=0; i<n; i++)
{
if(a[i]>max)
max=a[i];
}

for(j=max; j<=sum; j++)
{
count=0;
for(i=0; i<n; i++)
{
if(j%a[i]==0)
count++;
}

if(count==n)
{
printf("%d\n",j);
break;
}
}

}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: