Найти количество простых делителей числа - Pascal ABC

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

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

....а как все вместе то?

Решение задачи: «Найти количество простых делителей числа»

textual
Листинг программы
uses crt;
var n,i,j,k,s:integer;
    flag:boolean;
begin
write('n>0 n=');
readln(n);
writeln('Простые делители:');
if n=1 then
 begin
  k:=0;
  s:=0;
 end
else
 begin
  k:=0;
  s:=0;
  i:=2;
  while i<=n do
  if n mod i=0 then {проверяем делимость}
   begin
    j:=2; {если делится, проверяем на простое}
    Flag:=true;
    While (j*j<=i)and flag do
    If i mod j=0 then flag:=false
    else j:=j+1;
    if Flag then {если простое}
     begin
      k:=k+1;  {считаем количество}
      s:=s+i;  {считаем сумму}
      write(i,' '); {выводим}
      i:=i+1;  {дальше}
     end
    else i:=i+1;  {не простое - вперед}
   end
  else i:=i+1;  {не делится - вперед}
 end;
writeln;
write('Количество простых делителей=',k,' их сумма=',s);
readln
end.

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

  1. В начале кода подключается библиотека crt, которая предоставляет функции ввода-вывода.
  2. Объявляются переменные n, i, j, k, s и flag. Переменная n предназначена для хранения числа, для которого нужно найти простые делители. Переменные i, j и k используются для проверки делимости числа на различные числа от 2 до n. Переменная s служит для подсчета суммы простых делителей.
  3. Выводится запрос на ввод числа n.
  4. Выводится сообщение Простые делители: перед началом цикла.
  5. Если n равно 1, то устанавливаются значения k=0 и s=0, так как в этом случае у числа нет простых делителей.
  6. Иначе начинается цикл, в котором для каждого числа i от 2 до n выполняется следующая последовательность действий:
    • Проверяется условие ii<=n. Если оно выполняется, то начинается внутренний цикл while (jj<=i)and flag до тех пор, пока i делится на j без остатка.
    • Если внутренний цикл завершается с установленной флаговой переменной Flag, то число i является простым и выполняется следующая последовательность действий:
      • Увеличивается значение счетчика k на 1.
      • К сумме s добавляется число i.
      • Выводится число i с пробелом.
      • Значение i увеличивается на 1.
    • Если внутренний цикл завершается, не установив флаг, то число i не является простым, и значение i увеличивается на 1.
  7. После завершения внешнего цикла выводится сообщение Количество простых делителей=k их сумма=s.
  8. Конец программы.

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


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

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

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