是编译器问题,我把你的源代码在我电脑运行了一下,没问题的,估计编译器有问题了,我的是vc6.0 sp6,有可能的话打下补丁或者重装下编译器
思路:防止运算过程中数据溢出,采用_int64.
#include
_int64 mult1(_int64 x,_int64 y){
_int64 mult=x*y;
_int64 r;
if(x
x=y;
y=r;
}
while(r=x%y){
x=y;
y=r;
}
return mult/y;
}
int main(){
int num;
_int64 x,a;
while(scanf("%d",&num)!=EOF){
for(int i=0;i
if(!i)
x=a;
else
x=mult1(a,x);
}
printf("%I64d\n",x);
}
return 0;
}