Advertisement

杭州电子科技大学OJ2028 最小公倍数

阅读量:

Problem Description
计算n个数值的最小公倍数。

Input
输入包含多个测试用例,每个测试用例以一个正整数n开头,随后是n个正整数。

Output
针对每组测试数据,输出其对应的最小公倍数,每个测试实例的输出单独占一行。可假设最终的输出结果为一个32位整数。

Sample Input
2 4 6
3 2 5 7

Sample Output
12
70

最初想到的是最基础的方法,即从1开始依次对每个数值进行取余运算,直到所有数值的余数均为零为止。但提交后发现该方法存在超时问题。
随后对该方法进行了优化,首先确定一组数值中的最大值作为起始点,并逐步递增,再对每个数值进行取余运算,直至所有余数均为零。

复制代码
    #include<stdio.h>
    int main()
    {
    int i, n, s[500], lcm;
    while (scanf_s("%d", &n) != EOF)
    {
        lcm = 0;
        for (i = 1; i <= n; i++)
        {
            scanf_s("%d", &s[i]);
            if (lcm<s[i])  
                lcm = s[i];

全部评论 (0)

还没有任何评论哟~