Разложить число п на простые делители, подсчитывая сколько раз встречается один и тот же простой делитель - Pascal

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

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

Разложить число п на простые делители, подсчитывая при этом, сколько раз встречается один и тот же простой делитель, а также вычислить сумму этих делителей

Решение задачи: «Разложить число п на простые делители, подсчитывая сколько раз встречается один и тот же простой делитель»

textual
Листинг программы
function prime(n: integer): boolean;
var i: integer;
begin
  if n < 2
    then prime := false
    else begin
      prime := true;
      for i := 2 to trunc(sqrt(n)) do
      if n mod i = 0
        then begin
          prime := false;
          break
        end
    end
end;
var i, n, k, s: integer;
begin
  write('n = ');
  readln(n);
  if n < 2
    then writeln('The number has no simple dividers.')
    else begin
      writeln('+---------------+-------+');
      writeln('| Prime divider | Count |');
      writeln('+---------------+-------+');
      s := 0;
      for i := 2 to n do if prime(i)
        then begin
          k := 0;
          while n mod i = 0 do
            begin
              n := n div i;
              inc(k)
            end;
          if k > 0
            then begin
              writeln('|', i:14, ' |', k:6, ' |');
              s := s + i
            end;
          if n = 1 then break
        end;
      writeln('+---------------+-------+');
      writeln('Sum of prime dividers = ', s)
    end;
  readln
end.

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

  1. Функция prime(n: integer): boolean; принимает целое число n и возвращает булево значение true, если число n является простым, и false в противном случае.
  2. В функции prime(n: integer) происходит проверка простоты числа n с помощью алгоритма перебора делителей от 2 до корня из n. Если число делится на какое-либо число из этого диапазона без остатка, то оно не является простым и функция возвращает false.
  3. В основной программе после ввода числа n с помощью функции readln(n) происходит проверка, является ли число простым. Если число меньше 2, то выводится сообщение The number has no simple dividers.
  4. В противном случае выводится таблица с простыми делителями числа n.
  5. Переменная s инициализируется нулем и используется для подсчета суммы простых делителей числа n.
  6. Переменная k инициализируется нулем и используется для подсчета количества простых делителей числа n.
  7. Переменная i инициализируется значением 2 и используется для перебора простых делителей числа n.
  8. Если число i является простым, то начинается цикл, который делится на число i и увеличивает значение переменной k на единицу до тех пор, пока число n не станет равным 1.
  9. Если число k больше 0, то выводится строка с названием и значением простого делителя и значение переменной s увеличивается на число i.
  10. После окончания цикла выводится таблица с простыми делителями числа n.
  11. Выводится сообщение с суммой простых делителей числа n.

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


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

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

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