杭电oj2028,提交答案错误
#include <stdio.h>#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int gcd(int a,int b);
int main(int argc, char *argv[]) {
int n;
while(scanf("%d",&n)!=EOF){
int array[100];
int i=0;
for(i=0;i<n;i++){
scanf("%d",&array[i]);
}
while(n>1){
array[n-2]=(array[n-1]*array[n-2])/gcd(array[n-1],array[n-2]);
n=n-1;
}
printf("%d\n",array[0]);
}
return 0;
}
int gcd(int a,int b){
if(a==0)return b;
if(b==0)return a;
if(a%2==0&&b%2==0)return 2*gcd(a>>1,b>>1);
else if(a%2==0)return gcd(a>>1,b);
else if(b%2==0)return gcd(a,b>>1);
else return gcd(abs(a-b),a>b?b:a);
}
求ñ个数的最小公倍数。
输入包含多个测试实例,每个测试实例的开始是一个正整数N,然后是Ñ个正整数。
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。