Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр - Turbo Pascal

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

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

Помогите пожалуйста написать программку с исп. процедур Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр

Решение задачи: «Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр»

textual
Листинг программы
uses crt;
var n:integer;
function d(n:integer):boolean;
var m:0..9; k:integer;
begin
k:=n;
repeat
m:=k mod 10;
k:=k div 10;
until (k=0) or ((m<>0) and  (n mod m=0));
d:=n mod m=0;
end;
begin
clrscr;
write('Vvedite N: ');
readln(n);
for n:=n downto 1 do if d(n) then write(n,'; ');
readkey;
end.

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

Данный код на Turbo Pascal выполняет следующую задачу: проверяет, является ли число натуральным и делится ли оно на каждую из своих цифр. В начале кода объявляются необходимые переменные: n - число, которое нужно проверить, d - результат проверки, m - текущая цифра числа, k - остаток от деления числа на 10. Затем идет цикл repeat-until, который выполняется до тех пор, пока не будет достигнуто одно из условий: либо число станет равным нулю, либо остаток от деления на текущую цифру не будет равен нулю. В конце цикла проверяется последнее условие d=n mod m=0, которое возвращает true, если число делится на последнюю цифру. Далее идет цикл for, который выводит числа от n до 1, если они удовлетворяют условию d(n). Конечная строка readkey; используется для выхода из программы при нажатии любой клавиши.

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


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

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

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