Найти все простые числа, которые являются делителями одновременно m и n - Pascal

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

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

Найти все простые числа, которые являются делителями одновременно m и n

Решение задачи: «Найти все простые числа, которые являются делителями одновременно m и n»

textual
Листинг программы
function NOD(A, B : Integer) : Integer;
begin
  repeat
    if A > B then
      A := A mod B
    else
      B := B mod A;
  until (A = 0) or (B = 0);
  
  NOD := A + B;
end;
 
procedure DecPrim(var n : Integer; p : Integer);
begin
  Write(#32, p);
  while n mod p = 0 do
    n := n div p;
end;
 
var
  m, n, Q, d : Integer;
begin
  Write('m = '); ReadLn(m);
  Write('n = '); ReadLn(n);
  Q := NOD(m, n);
  if Q = 1 then
    WriteLn('Нет.')
  else
    begin
      Write('Простые делители m и n :');
      if Not odd(Q) then
        DecPrim(Q, 2);
      d := 3;
      while Q > 1 do
        begin
          if Q mod d = 0 then
            DecPrim(Q, d);
          Inc(d, 2);
        end;
    end;
end.

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

  1. В функции NOD(A, B) используется цикл repeat-until, который выполняется до тех пор, пока A не станет равным нулю или B не станет равным нулю. В каждой итерации цикла выполняется операция модуля между A и B. Если A больше B, то A приводится к B с помощью операции модуля. Если A меньше или равно B, то B приводится к A с помощью операции модуля.
  2. В процедуре DecPrim(var n : Integer; p : Integer), выводится значение переменной p с помощью функции Write(#32, p). Затем, в цикле while, происходит деление переменной n на p. Цикл продолжается до тех пор, пока n не станет равным нулю.
  3. В начале программы, с помощью функции ReadLn(m), считывается значение переменной m. Аналогично, с помощью функции ReadLn(n), считывается значение переменной n.
  4. Затем вызывается функция NOD(m, n), которая возвращает результат. Если результат равен 1, то выводится сообщение Нет., что означает, что простые делители m и n не найдены. В противном случае, выводится сообщение Простые делители m и n :, и затем, в цикле while, выводятся простые делители Q, начиная с наименьшего возможного значения (3). Если Q является простым числом и нечетным, то вызывается процедура DecPrim(Q, 2), которая выводит этот делитель. Затем значение Q увеличивается на 2, и цикл повторяется.
  5. В конце программы, переменные m и n уничтожаются с помощью оператора end, а переменная Q сохраняется в переменной d. Затем, если Q не является нечетным числом, то вызывается процедура DecPrim(Q, 2). Значение Q увеличивается на 2, и цикл повторяется, пока Q не станет равным 1.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

11   голосов , оценка 4.091 из 5
Похожие ответы