Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Прошу помочь в решении задачи. Python

Некто Безымянный Ученик (201), на голосовании 7 месяцев назад
Умная колонка — это интеллектуальное устройство для дома со встроенным микрофоном и динамиком, а также голосовым управлением. Если 10 лет назад наличие в доме умного ассистента было за гранью фантастики, то сегодня умные колонки уже стали частью интерьера современных квартир. Они умеют шутить, ставить музыку, читать на ночь сказки и, конечно, управлять остальной умной техникой.

В лаборатории SberDevices решили не отставать и к праздничному юбилею Сбербанка выпустили особую коллекцию умных колонок с эксклюзивными дизайнами. Каждая партия получила уникальный номер, чтобы было проще контролировать распространение товара. Для этой коллекции лаборатория изменила систему присвоения порядкового номера: теперь берётся число компонентов, припаянных к главной плате A, и для этого числа ищется минимальное положительное целое число B, такое, чтобы произведение цифр числа B в точности равнялось A. В случае если число компонентов является простым числом, то партия колонок относится к лимитированной серии.

Решение должно быть подготовлено на языке Python. Данные На вход (stdin) программе подаётся целое число A, диапазон которого от 1 до 109. Результатом работы программы (вывод в stdout) должно стать целое число B. Если такого числа не существует, выведите строку «лимитированная партия».
Примеры
Вход: 11
Выход: лимитированная партия
Вход: 14
Выход: 27
Дополнен 8 месяцев назад
Вопрос всё ещё в силе, спасите неуча пожалуйста:_)
Голосование за лучший ответ
Сверхразум Оракул (50095) 8 месяцев назад
 def find_B(A): 
# Проверка на простое число
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True

# Если число простое, то это лимитированная партия
if is_prime(A):
return "лимитированная партия"

# Иначе ищем минимальное положительное целое число B
for B in range(1, 10**9 + 1):
product = 1
for digit in str(B):
product *= int(digit)
if product == A:
return B

return "лимитированная партия"

# Пример использования функции
print(find_B(11)) # Вывод: лимитированная партия
print(find_B(14)) # Вывод: 27
Некто БезымянныйУченик (201) 8 месяцев назад
Не то, чтобы помогло, но спасибо. Чессстна, похоже на ответ нейросети, хотелось бы услышать мнение реального человека.
Похожие вопросы