原题:
Problem Description
求n个数的最小公倍数。
Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
Sample Input
2 4 6 3 2 5 7
Sample Output
12 70
分析:
开始int不过,经浪子大神指点,过之;
原码:
#include<stdio.h>
int p(int m,int n)
{
if(m<n)
{
int o=m;
m=n;
n=o;
}
int i=m;
int j=n;
while(j!=0)
{
int t=i%j;
i=j;
j=t;
}
return (((long long)m*(long long )n)/i);
}
int main()
{
int a;
int k;
int ans;
while(scanf("%d",&k)!=EOF)
{
ans=1;
for(int i=0; i<k; i++)
{
scanf("%d",&a);
ans=p(ans,a);
}
printf("%d\n",ans);
}
return 0;
}