HDOJ 2028 Lowest Common Multiple Plus

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2028

Problem Description
求n个数的最小公倍数。
Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
Sample Input
2 4 6
3 2 5 7
Sample Output
12
70

题解

#include
typedef unsigned long UL;
UL gcd(UL u, UL v) {
    int remainder;    
    remainder = u % v;
    while(remainder) {
        u = v;
        v = remainder;
        remainder = u % v;
    }
    return v;
}
UL lcm(UL u, UL v) {
    return u * v / gcd(u, v);
}
int main()
{
    int n;
    UL u, res;    
    while (scanf("%d", &n) != EOF) {
        res = 1;
        while (n--) {
            scanf("%lu", &u);
            res = lcm(res, u);
        }
        printf("%lu\n", res);
    }
    return 0;
}

你可能感兴趣的:(HDOJ 2028 Lowest Common Multiple Plus)