最小质数合数之和问题请教

提交了一直显示超时,请教各位

img

#include
int sushu, heshu;
int he(int n)
{
    int flag = 1;
    int i = n + 1;
    while(flag)
    {
        for (int j = 2; j < i; ++j)
        {
            if (i % j == 0)
            {
                flag = 0;
                heshu = i;
                break;
            }
        }
        if (flag == 1)
        {
            i++;
        }
    }
    //printf("%d\n", heshu);
    return heshu;
}
int su(int n)
{
    int flag = 1, f = 1;
    int i = n + 1;
    while (flag)
    {
        f = 1;
        for (int j = 2; j < i; ++j)
        {
            if (i % j == 0)
            {
                f = 0;
                break;
            }
        }
        if (f == 0)
        {
            i++;
        }
        else
        {
            flag = 0;
            sushu = i;
        }
    }
    //printf("%d\n", heshu);
    return sushu;
}
int main()
{
    int n, a, b;
    scanf_s("%d", &n);
    a = he(n);
    //printf("%d", a);
    b = su(n);
    //printf("%d", b);
    printf("%d", a + b);
}

这个范围,需要对质数的计算进行优化。比如说用筛法。

你这确实太浪费时间了