Member 14074309 Ответов: 1

Как работает последнее утверждение if(prime)


#include<stdio.h>
main()
    {
    int i, prime, u, n;
    scanf("%d",&u);
    for(n=2; n<u; n++)
        {
        prime = 1;
        for(i=2; i<n; i++)
            {
            if(n%i == 0)
                {
                prime = 0;
                break;
                }
            }
        if(prime)
            printf("%d ",n); //avoid '\b' and use space after %d
        }
    }


Что я уже пробовал:

Я не понимаю как работает это утверждение скажи мне как оно работает

1 Ответов

Рейтинг:
2

OriginalGriff

В языке С отсутствует понятие true и false как и во многих (более современных) языках.
Вместо этого любое значение, отличное от нуля, считается "истинным", а любое значение, равное нулю,-"ложным".
Поэтому, когда вы устанавливаете переменную prime внутри ваших петель вы можете проверить его вне петель и узнать, что произошло.
Если вы установите prime до 0, то вы говорите: "это не простое число", так что вы не будете печатать сообщение.

Но... откуда бы вы ни взяли этот код, это довольно плохой способ проверки простых чисел: он проверяет чертовски много одних и тех же чисел снова и снова.
Возможно, вы захотите рассмотреть вопрос о решето Эратосфена[^] решение вместо этого, так как ваше решение будет очень медленным, как u становится больше.


CPallini

5.