Визначте паліндромні добутки в заданому діапазоні.
Паліндромним називають число, яке не змінюється, якщо його цифри записати у зворотному порядку.
Наприклад, 121 - паліндромне число, а 112 - ні.
Для заданого діапазону чисел знайдіть найбільший і найменший паліндроми, які є добутками двох чисел у цьому діапазоні.
Рішення має повернути найбільший і найменший паліндроми разом із множниками кожного з них у межах діапазону. Якщо найбільший або найменший паліндром має більше ніж одну пару множників у межах діапазону, поверніть усі пари.
Задано діапазон [1, 9] (обидві межі включно)...
І задано масив усіх можливих добутків у межах цього діапазону:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 15, 21, 24, 27, 20, 28, 32, 36, 25, 30, 35, 40, 45, 42, 48, 54, 49, 56, 63, 64, 72, 81]
Паліндромні добутки - це всі одноцифрові числа (у цьому випадку):
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Найменший паліндромний добуток дорівнює 1.
Його множники: (1, 1).
Найбільший паліндромний добуток дорівнює 9.
Його множники: (1, 9) і (3, 3).
Задано діапазон [10, 99] (обидві межі включно)...
Найменший паліндромний добуток дорівнює 121.
Його множники: (11, 11).
Найбільший паліндромний добуток дорівнює 9009.
Його множники: (91, 99).
smallest та largest:Обидві функції мають приймати два іменовані аргументи:
max_factor: intmin_factor: int, типове значення 0Їхнє повернене значення має бути tuple -- (value, factors), де value - сам
паліндром, а factors - iterable, що містить обидва множники паліндрома в
довільному порядку.
Іноді виникає потреба викликати виняток. Коли ми це робимо, слід завжди додавати змістовне повідомлення про помилку, щоб указати, у чому джерело помилки. Це робить код зрозумілішим і значно допомагає під час налагодження. У ситуаціях, коли відомо, що джерело помилки матиме певний тип, можна викликати один із вбудованих типів помилок, але все одно слід додати змістовне повідомлення.
У цій вправі потрібно використати інструкцію raise, щоб «кинути» ValueError, коли функція largest() або smallest() приймає пару множників, які не належать до правильного діапазону. Тести пройдуть, лише якщо ми і викличемо exception за допомогою raise, і додамо до нього повідомлення.
Щоб викликати ValueError з повідомленням, запишіть повідомлення як аргумент до типу exception:
# if the max_factor is less than the min_factor
raise ValueError("min must be <= max")
Зареєструйтеся на Exercism, щоб вивчати й опановувати Python, а також 17 концепцій146 вправ та справжнє наставництво від людей, і все це безкоштовно.