1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
Работа 3.5 Упр.4 Задание 2 ГДЗ Семакин 10 класс (Информатика)
Семакин, Хеннер, Шеина
10 класс
Класс
10
Предмет
Информатика
Автор
Семакин, Хеннер, Шеина

Работа 3.5 Упр.4 Задание 2 ГДЗ Семакин 10 класс (Информатика)

Задача

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

Подробный ответ

Составим функцию 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 и выводит те, которые делятся на каждую свою цифру.



Общая оценка
4.1 / 5
Другие учебники
Другие предметы