Определить, простое или составное введённое число - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Помогите создать программу,которая при введении любого числа показывает: простое или составное это введенное число. (Я пробовал но у меня не получалось. И похоже я вообще не правильно писал код.)

Решение задачи: «Определить, простое или составное введённое число»

textual
Листинг программы
  1. function isSimple(value: cardinal): boolean;
  2. begin
  3.   if value < 2 then
  4.   begin
  5.     Result := false;
  6.     exit;
  7.   end;
  8.   Result := Range(2, Trunc(Sqrt(value))).Where(f -> value mod f = 0).Count = 0;
  9. end;
  10.  
  11. begin
  12.   writeln(isSimple(2147483647));
  13.   for var i:=2 to 100 do
  14.   if not isSimple(i) then Print(i);
  15. end.

Объяснение кода листинга программы

  1. Объявлена функция isSimple, которая принимает целочисленный аргумент value типа cardinal и возвращает логическое значение boolean.
  2. В функции реализован простой проверческий алгоритм определения простого числа:
    • Если число меньше 2, то оно не является простым, и функция возвращает false.
    • Иначе, функция проверяет, делится ли число на какое-либо число в диапазоне от 2 до квадратного корня из value. Если делится, то число составное, и функция возвращает false.
    • Если число не делится ни на одно число в указанном диапазоне, то оно простое, и функция возвращает true.
  3. В основной части программы вызвана функция isSimple с аргументом 2147483647, которое является максимальным значением для cardinal.
  4. В цикле от 2 до 100 выполняется проверка, является ли текущее число простым с помощью функции isSimple. Если число не является простым, то оно выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы