Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 23 ноября 2025 14:59

На вход подаётся четырёхзначное натуральное число. Выведите наибольшее простое число, которое можно составить из цифр введенного числа не переставляя их порядок. Если из цифр невозможно составить натуральное число или введено не четырёхзначное натуральное число, то выводится цифра 0. Например, из числа 1737 можно выделить несколько простых чисел 1737-17,1737-7,1737-3, 1737-73, 1737-37, 1737-173, Программа не должна выводить цичего кроме требуемого

Ответ нейросети

23 ноября 2025 14:59

Кратко: нужно перебрать все непустые подпоследовательности цифр введённого четырехзначного числа, сохраняя порядок цифр, каждую подпоследовательность преобразовать в целое число, проверить, простое ли оно, и выбрать наибольшее простое. Если простых чисел нет или вход не четырёхзначное, вывести 0.

Как решить пошагово

  1. Проверка входа
  • Вход должен быть натуральным числом из четырёх цифр (от 1000 до 9999). Иначе сразу выводим 0.
  1. Получение цифр
  • Разделяем число на цифры слева направо: d0, d1, d2, d3.
  1. Перебор всех подпоследовательностей
  • Есть 2^4 − 1 = 15 непустых подпоследовательностей. Перебираем их с помощью битовой маски mask от 1 до 15.
  • Для каждого i от 0 до 3, если в маске бит i установлен, добавляем цифру di в текущую последовательность (чтобы порядок сохранялся).
  • Преобразуем полученную последовательность цифр в целое число x (используем int, чтобы игнорировать возможные ведущие нули).
  1. Проверка простоты
  • Для каждого полученного x больше 1 проверяем делимость на все числа от 2 до floor(sqrt(x)).
  • Если x простое и больше текущего максимального найденного простого, запоминаем его.
  1. Вывод результата
  • Если был найден хотя бы один простой число, выводим наибольшее найденное. Иначе выводим 0.

Псевдокод (для ясности)

  • если не четырехзначное натуральное число: вывести 0
  • digits = список цифр числа (д0, д1, д2, д3)
  • max_prime = 0
  • для mask в диапазоне 1..15:
    • цепочка = пустая
    • для i в 0..3:
      • если (mask >> i) & 1: добавить digits[i] в цепочку
    • x = int(цепочка)
    • если x > 1 и is_prime(x) и x > max_prime: max_prime = x
  • вывести max_prime (если max_prime == 0, выводим 0)

Функция проверки простоты is_prime(n)

  • если n <= 1: вернуть false
  • для t от 2 до floor(sqrt(n)):
    • если n % t == 0: вернуть false
  • вернуть true

Рабочий пример на входе 1737

  • цифры: 1, 7, 3, 7
  • все непустые подпоследовательности дают такие числа: 1, 7, 3, 7, 17, 13, 17, 73, 77, 37, 173, 177, 137, 737, 1737
  • простые среди них: 7, 3, 17, 13, 73, 37, 173, 137, ...
  • из них наибольшее простое — 173
  • итоговый вывод: 173

Дополнительные заметки

  • Ввод типа 4 цифры с возможными нулями во внутренности тоже корректен: ведущие нули в подпоследовательности просто дают числу соответствующее значение (например, подпоследовательность 0,2, можно получить число 2).
  • Общее число проверяемых значений всегда равно 15 для четырех цифр, поэтому решение работает быстро даже на школьной практике.

Если хочешь, могу привести конкретную реализацию на языке Python или другом языке по твоему выбору.

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

На вход подаётся четырёхзначное натуральное число. Выведите наибольшее простое число, которое можно составить из цифр введенного числа не переставляя их порядок. Если из цифр невозможно составить натуральное число или введено не четырёхзначное натуральное число, то выводится цифра 0. Например, из числа 1737 можно выделить несколько простых чисел 1737-17,1737-7,1737-3, 1737-73, 1737-37, 1737-173, Программа не должна выводить цичего кроме требуемого
Кратко: нужно перебрать все непустые подпоследовательности цифр введённого четырехзначного числа, сохраняя порядок цифр, каждую подпоследовательность преобразовать в целое число, проверить, простое ли оно, и выбрать наибольшее простое. Если простых чисел нет или вход не четырёхзначное, вывести 0. Как решить пошагово 1) Проверка входа - Вход должен быть натуральным числом из четырёх цифр (от 1000 до 9999). Иначе сразу выводим 0. 2) Получение цифр - Разделяем число на цифры слева направо: d0, d1, d2, d3. 3) Перебор всех подпоследовательностей - Есть 2^4 − 1 = 15 непустых подпоследовательностей. Перебираем их с помощью битовой маски mask от 1 до 15. - Для каждого i от 0 до 3, если в маске бит i установлен, добавляем цифру di в текущую последовательность (чтобы порядок сохранялся). - Преобразуем полученную последовательность цифр в целое число x (используем int, чтобы игнорировать возможные ведущие нули). 4) Проверка простоты - Для каждого полученного x больше 1 проверяем делимость на все числа от 2 до floor(sqrt(x)). - Если x простое и больше текущего максимального найденного простого, запоминаем его. 5) Вывод результата - Если был найден хотя бы один простой число, выводим наибольшее найденное. Иначе выводим 0. Псевдокод (для ясности) - если не четырехзначное натуральное число: вывести 0 - digits = список цифр числа (д0, д1, д2, д3) - max_prime = 0 - для mask в диапазоне 1..15: - цепочка = пустая - для i в 0..3: - если (mask >> i) & 1: добавить digits[i] в цепочку - x = int(цепочка) - если x > 1 и is_prime(x) и x > max_prime: max_prime = x - вывести max_prime (если max_prime == 0, выводим 0) Функция проверки простоты is_prime(n) - если n <= 1: вернуть false - для t от 2 до floor(sqrt(n)): - если n % t == 0: вернуть false - вернуть true Рабочий пример на входе 1737 - цифры: 1, 7, 3, 7 - все непустые подпоследовательности дают такие числа: 1, 7, 3, 7, 17, 13, 17, 73, 77, 37, 173, 177, 137, 737, 1737 - простые среди них: 7, 3, 17, 13, 73, 37, 173, 137, ... - из них наибольшее простое — 173 - итоговый вывод: 173 Дополнительные заметки - Ввод типа 4 цифры с возможными нулями во внутренности тоже корректен: ведущие нули в подпоследовательности просто дают числу соответствующее значение (например, подпоследовательность 0,2, можно получить число 2). - Общее число проверяемых значений всегда равно 15 для четырех цифр, поэтому решение работает быстро даже на школьной практике. Если хочешь, могу привести конкретную реализацию на языке Python или другом языке по твоему выбору.