Определить, простое или составное введённое число - PascalABC.NET
Формулировка задачи:
Помогите создать программу,которая при введении любого числа показывает: простое или составное это введенное число. (Я пробовал но у меня не получалось. И похоже я вообще не правильно писал код.)
Решение задачи: «Определить, простое или составное введённое число»
textual
Листинг программы
function isSimple(value: cardinal): boolean; begin if value < 2 then begin Result := false; exit; end; Result := Range(2, Trunc(Sqrt(value))).Where(f -> value mod f = 0).Count = 0; end; begin writeln(isSimple(2147483647)); for var i:=2 to 100 do if not isSimple(i) then Print(i); end.
Объяснение кода листинга программы
- Объявлена функция
isSimple, которая принимает целочисленный аргументvalueтипаcardinalи возвращает логическое значениеboolean. - В функции реализован простой проверческий алгоритм определения простого числа:
- Если число меньше 2, то оно не является простым, и функция возвращает
false. - Иначе, функция проверяет, делится ли число на какое-либо число в диапазоне от 2 до квадратного корня из
value. Если делится, то число составное, и функция возвращаетfalse. - Если число не делится ни на одно число в указанном диапазоне, то оно простое, и функция возвращает
true.
- Если число меньше 2, то оно не является простым, и функция возвращает
- В основной части программы вызвана функция
isSimpleс аргументом2147483647, которое является максимальным значением дляcardinal. - В цикле от 2 до 100 выполняется проверка, является ли текущее число простым с помощью функции
isSimple. Если число не является простым, то оно выводится на экран.