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