要注意数组要__int64才行,不然会溢出。
#include <stdio.h> int gcd(int a,int b){ int t,c; if(a<b){ t=a;a=b;b=t; } c=1; while(c){ c=a%b; a=b; b=c; } return a; } int main(){ int n,i; int t1,t2; __int64 num[10000]; while(~scanf("%d",&n)){ for(i=0;i<n;++i){ scanf("%d",&num[i]); } for(i=1;i<n;++i){ num[i]=num[i-1]*num[i]/gcd(num[i-1],num[i]); } printf("%lld ",num[n-1]); } return 0; }