Работа 3.4 Упр.6 Задание 3 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 6. Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-4/zad3/6 98
Составим функцию, которая проверяет число $$a$$. Будем последовательно выделять его цифры:
- берём последнюю цифру $$m = a \bmod 10$$;
- если цифра равна $$0$$, то число не подходит, так как на ноль делить нельзя;
- если $$a \bmod m \ne 0$$, то число тоже не подходит;
- убираем последнюю цифру: $$a := a \div 10$$;
- повторяем, пока $$a > 0$$.
Если все цифры прошли проверку, функция возвращает true. Затем перебираем все числа от $$1$$ до $$n$$ и выводим те, для которых функция истинна.
var n,i:integer;
function f(a:integer):boolean;
var k,m:integer; b:boolean;
begin
b:=true;
k:=a;
while k>0 do
begin
m:=k mod 10;
if (m=0) or (a mod m <> 0) then b:=false;
k:=k div 10;
end;
f:=b;
end;
begin
write(‘n = ‘);
readln(n);
for i:=1 to n do
if f(i) then write(i,’ ‘);
end.
Ответ
Программа выводит все натуральные числа, не превосходящие $$n$$, которые делятся на каждую из своих цифр.