Работа 3.5 Упр.4 Задание 2 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 4. Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-5/zad2/4 98
Составим функцию f(a), которая проверяет, делится ли число a на каждую свою цифру.
Идея такая:
- берём число a;
- по очереди выделяем его последнюю цифру m = a mod 10;
- если цифра равна нулю, число не подходит, так как деление на ноль невозможно;
- если a mod m ≠ 0, то число тоже не подходит;
- убираем последнюю цифру: a div 10;
- если все цифры проверены успешно, функция возвращает true.
Затем в основной программе перебираем все числа от 1 до n и выводим те, для которых функция f(i) истинна.
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, которые делятся на каждую из своих цифр.
Ответ
Программа перебирает числа от 1 до n и выводит те, которые делятся на каждую свою цифру.