Разработать подпрограмму, определяющую, является ли целое число простым - PascalABC.NET

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

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

дбрый день! 3. Разработать подпрограммы (функции или процедуры): • prostoe(), которая определяет, является ли целое действительное число простым; • sostavnoe(), которая выводит в порядке убывания все делители составного действительного числа. Используя функции, определить значения всех простых чисел в диапазоне от 150 до 250, и все делители длясоставных чисел.Вывод результатов осуществлять в цикле, блоками по 10 значений, после которых требуется нажать клавишу с клавиатуры. Примечание: простым называется число, которое делится только на само себя и на 1. Результаты обработки значений должны выводиться в одном цикле.

Решение задачи: «Разработать подпрограмму, определяющую, является ли целое число простым»

textual
Листинг программы
  1. function prostoe(n: integer): boolean;
  2. var i, sqrtn, delta: integer;
  3. begin
  4.   if (n >= 5) and ((n - 1) mod 6 = 0) or ((n + 1) mod 6 = 0)
  5.     then begin
  6.       i := 5;
  7.       delta := 2;
  8.       sqrtn := trunc(sqrt(n));
  9.       prostoe := false;
  10.       while i <= sqrtn do
  11.         begin
  12.           if n mod i = 0 then Exit;
  13.           inc(i, delta);
  14.           delta := delta xor 6; {смена шага, то 2, то 4}
  15.         end;
  16.       prostoe := true;
  17.     end
  18.     else prostoe := (n = 2) or (n = 3)
  19. end;
  20.  
  21. procedure sostavnoe(n: integer);
  22. var i: integer;
  23. begin
  24.   write(n:4);
  25.   for i := n div 2 downto 2 do if n mod i = 0 then  write(i:4);
  26.   writeln(1:4)
  27. end;
  28.  
  29. var x: integer;
  30. begin
  31.   for x := 150 to 250 do
  32.     begin
  33.       write(x:4, ': ');
  34.       if prostoe(x)
  35.         then writeln('простое')
  36.         else begin
  37.           writeln('составное, делители числа: ');
  38.           sostavnoe(x)
  39.         end;
  40.       if x mod 10 = 9
  41.         then begin
  42.           write('Нажмите <Enter> для продолжения.');
  43.           readln
  44.         end
  45.     end;
  46.   write('Нажмите <Enter> для выхода.');
  47.   readln
  48. end.

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

  1. Создается функция prostoe(n: integer): boolean, которая принимает целое число n и возвращает логическое значение true, если число простое, и false, если число составное.
  2. В функции определены следующие переменные:
    • i: переменная для цикла,
    • sqrtn: квадратный корень из числа n,
    • delta: шаг для перебора делителей.
  3. Проверяется, является ли число n больше или равным 5 и при этом делится на 6 без остатка. Если это так, то выполняется код для составного числа.
  4. В процедуре sostavnoe(n: integer) выводится само число n и все его делители, которые меньше самого числа.
  5. В основной программе создается переменная x, которая перебирает числа от 150 до 250.
  6. Для каждого числа x выполняется следующий код:
    • Выводится число x,
    • Проверяется, является ли число x простым с помощью функции prostoe(x).
    • Если число простое, то выводится сообщение простое.
    • Если число составное, то выводится сообщение составное, делители числа: и вызывается процедура sostavnoe(x).
    • После каждого десятка чисел выводится сообщение Нажмите <Enter> для продолжения..
  7. В конце программы выводится сообщение Нажмите <Enter> для выхода..

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


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

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

7   голосов , оценка 4.143 из 5

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

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

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