C программа для расчета наибольшего разрыва между простыми числами в диапазоне - PullRequest
0 голосов
/ 15 ноября 2018

Может кто-нибудь помочь мне написать эту программу? даже псевдокод сделает эту работу. эта программа должна отсканировать число, подобное 34, и вычислить наибольший разрыв между простыми числами до 34, я имею в виду (29-23-1) = 5. большое спасибо

int y,x,N,large=3,small=2,b,a;

scanf("%d",&N);

    for(y=3;y<N;++y)
        for(x=2;x<y;++x)
            a=y%x;

    if(a==0) break;

    else if(y>large && y>small) small=large;

    large=y;small=x;b=large-small-1;

    if(b<large-small-1)b=large-small-1;

    printf("%d",b);

1 Ответ

0 голосов
/ 15 ноября 2018

Кто-нибудь может мне помочь написать эту программу?

Ну, это ясный и конкретный вопрос. Но вместо того, чтобы отвечать "Да", я 'покажу небольшую перестановку, которая нужна вашей попытке, с пояснениями в комментариях.

#include <stdio.h>

main()
{
    int y, x, N, large=2, small, b=0, a;    // don't forget to initialize b
    scanf("%d", &N);
    for (y=3; y<N; ++y)
        for (x=2; x<y; ++x)
        {
            a=y%x;
            if (a==0) break;

            if (x*x < y) continue;      // continue if unsure whether y is prime

            small=large;
            large=y;
            if (b<large-small)
                b=large-small;
            break;                      // we handled this prime y, go to next y
        }
    printf("%d\n", b);
}
...