Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр - Turbo Pascal
Формулировка задачи:
Решение задачи: «Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр»
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; используется для выхода из программы при нажатии любой клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д