如何让我的程序更快以获得更高的值?

时间:2016-11-12 14:58:20

标签: c arrays performance time

我在几天内解决了以下codechef问题: - https://www.codechef.com/NOV16/problems/ALEXTASK

经过大量的思考后,我想出了以下解决方案: -

#include<stdio.h>

int main(void)
{
    int t, n, i, flag;
    scanf("%d", &t);

    while(t--)
    {
        scanf("%d", &n);
        long a[n], time;

        for(i = 1; i <= n; i++)
            scanf("%ld", &a[i]);

        time = 1;
        flag = 0;

        while(1)
        {
            for(i = 1; i <= n; i++)
            {
                if(time % a[i] == 0)
                    flag++;

                if(flag == 2)
                    break;
            }

            if(flag == 2)
                break;

            else
            {
                time++;
                flag = 0;
            }
        }

        printf("%ld\n", time);
    }

    return 0;
}

现在我能够接受较小的数组a [i],即a [i] <= 1000但是对于较大的数组a a [i],如a [i]&lt; = 10 ^ 9超过1秒的时间限制。

我想了很多关于改善时间复杂度的方法,但我无法这样做。

那么,任何人都可以帮助我改进我的计划吗?

0 个答案:

没有答案