Вопрос задан 19.12.2025 в 09:11.
Предмет Информатика.
Спрашивает Новиков Дмитрий.
Написать программу в Паскале: найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр.
Ответы на вопрос
Отвечает Романов Николай.
Как решать: перебираем числа от 1 до n и проверяем каждое — делится ли оно на каждую из своих цифр. Если встречается цифра 0, число сразу не подходит (деление на ноль запрещено).
Ниже рабочая программа на Паскале (Free Pascal / PascalABC.NET):
Пояснения по важным моментам:
-
DivisibleByEachDigitперебирает цифры числа справа налево: берёмd := t mod 10, проверяем, чтоd <> 0иk mod d = 0. Если нет — возвращаемfalse. -
Ноль среди цифр сразу исключает число.
-
Основной цикл идёт от 1 до
n, выводя подходящие числа через пробел. -
Сложность ~
O(n * количество_цифр)(порядкаO(n log10 n)), что достаточно для типичных ограничений олимпиадных задач.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

