Виталий Виталик
Профи
(504)
1 месяц назад
Здравствуйте, Блок-схема функции isPrime на C++:
Если num < 2, вернуть false. 1
Для каждого i от 2 до квадратного корня из num:
Если num делится нацело на i, вернуть false. 1
Вернуть true. 1
Алгоритм работы функции:
Сначала проверяется, меньше ли число 1, в этом случае оно не является простым.
Затем итерируется от 2 до квадратного корня числа, проверяя, делится ли оно на любое число в этом диапазоне.
Если находится делитель, возвращается false, что означает, что число не является простым.
Если делитель не найден, возвращается true, что означает, что число простое.
В функции main() пользователь вводит число, затем вызывается функция isPrime() для проверки, является ли число простым или нет, и выводится результат.
Krab Bark
Искусственный Интеллект
(296247)
1 месяц назад
Скорее всего преподаватель хочет, чтобы цикл был расписан так же, как в методичке.
Вообще же блок-схемы такого типа в современном программировании - идиотизм.
"В свое время предложенные Голдстайном и Нейманом маленькие квадратики на блок-схемах вместе со своим содержанием выступали в качестве языков высокого уровня, объединяя абсолютно непонятные операторы машинного языка в группы, имеющие определенный смысл. Как давно уже указал Айверсон, в систематическом языке высокого уровня такая группировка уже осуществлена, так что каждый квадратик просто соответствует оператору." (Голдстейн)
А у вас требуют еще и для оператора цикла расписывать его устройство в машинном коде :)
я уже 9 раз переделываю преподавателю не нравится, капец тяжело никак не принимает. говорит делать по методичке, но я не смог
код:
bool isPrime(int x)
{
bool flag = true;
if (x == 0 || x == 1)
{
return false;
}
for (int i = 2; i < x / 2; i++)
{
if (x % i == 0)
{
flag = false;
}
}
return flag;
}