Определить количество трехзначных чисел, сумма цифр которых простое число - Turbo Pascal
Формулировка задачи:
Написал код, но не могу понять в чем ошибка. Выводит на экран 0. Буду благодарен за помощь
Листинг программы
- var i,x,s,j,F,k:integer;
- begin
- for j:=100 to 999 do
- begin
- s:=0;
- x:=j;
- while x<>0 do
- begin
- s:=s+(x mod 10);
- x:=x div 10;
- end;
- for i:=2 to s div 2 do
- begin
- if s mod i = 0 then
- F:=1 else if F=0 then
- k:=k+1;
- end;
- end;
- writeln('Кол-во чисел: ', k);
- end.
Решение задачи: «Определить количество трехзначных чисел, сумма цифр которых простое число»
textual
Листинг программы
- var
- i, x, s, j, count, k: integer;
- begin
- for j := 100 to 999 do
- begin
- s := 0;
- x := j;
- while x <> 0 do
- begin
- s := s + (x mod 10);
- x := x div 10;
- end;
- k := 1;
- for i := 2 to round(sqrt(s)) do
- begin
- if s mod i = 0 then
- k := k * 0;
- end;
- if k = 1 then count := count + 1;
- end;
- writeln('Кол-во чисел: ', count);
- end.
Объяснение кода листинга программы
- Создается переменная
i
типаinteger
. - Создается переменная
x
типаinteger
. - Создается переменная
s
типаinteger
. - Создается переменная
j
типаinteger
. - Создается переменная
count
типаinteger
. - В цикле от 100 до 999 выполняется следующий код:
- Переменная
s
инициализируется как 0. - Переменная
x
инициализируется как значение переменнойj
. - Запускается цикл, пока
x
не станет равным 0. - В цикле переменная
s
увеличивается на (x mod 10), гдеmod
- оператор остатка от деления. - Переменная
x
делится на 10. - Переменная
k
инициализируется как 1. - Запускается цикл, в котором проверяется, делится ли
s
на любое число от 2 до округленного значения корня изs
. Если делится, то переменнаяk
устанавливается в 0. - Если в конце цикла
k
равно 1, то переменнаяcount
увеличивается на 1.
- Переменная
- Выводится сообщение
Кол-во чисел:
, и переменнаяcount
выводится с кавычками. - Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д