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

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

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

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

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

textual
Листинг программы
function prostoe(n: integer): boolean;
var i, sqrtn, delta: integer;
begin
  if (n >= 5) and ((n - 1) mod 6 = 0) or ((n + 1) mod 6 = 0)
    then begin
      i := 5;
      delta := 2;
      sqrtn := trunc(sqrt(n));
      prostoe := false;
      while i <= sqrtn do
        begin
          if n mod i = 0 then Exit;
          inc(i, delta);
          delta := delta xor 6; {смена шага, то 2, то 4}
        end;
      prostoe := true;
    end
    else prostoe := (n = 2) or (n = 3)
end;
 
procedure sostavnoe(n: integer);
var i: integer;
begin
  write(n:4);
  for i := n div 2 downto 2 do if n mod i = 0 then  write(i:4);
  writeln(1:4)
end;
 
var x: integer;
begin
  for x := 150 to 250 do
    begin
      write(x:4, ': ');
      if prostoe(x)
        then writeln('простое')
        else begin
          writeln('составное, делители числа: ');
          sostavnoe(x)
        end;
      if x mod 10 = 9
        then begin
          write('Нажмите <Enter> для продолжения.');
          readln
        end
    end;
  write('Нажмите <Enter> для выхода.');
  readln
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
Похожие ответы