// hdoj_2028 Lowest Common Multiple Plus
// 0MS 228K 341 B GCC
#include <stdio.h>
int main(void)
{
int n;
__int64 x, y, a, b, temp;
while(scanf("%d", &n) != EOF)
{
scanf("%I64d", &x);
a = x;
while(--n)
{
scanf("%I64d", &y);
b = y;
while(y)
{
temp = x%y;
x = y;
y = temp;
}
x = a*b/x;
a = x;
}
printf("%I64d\n", x);
}
return 0;
}
/*
32位数……
int; long int; long long 都不行(理论上 __int64 和long long 是相同的,但由于用的是windows下的MingW,所以long long 不可以,__int64可以)
__int64可以
注意输入和输出的时候要用%I64d
*/
相关资料:
__int64 类型(VC中)与long long 型(gcc中,C99标准)
本文提供了一个解决HDU 2028 LCM+问题的有效算法,采用__int64类型变量来处理大整数运算,并通过辗转相除法求解最小公倍数。代码使用C语言实现,展示了完整的输入输出流程。
2922

被折叠的 条评论
为什么被折叠?



