ася испугался, что Петя подсмотрит все его пароли в записной книжке, и решил их зашифровать. Для этого он берет изначальный пароль – трехзначное число – и по нему строит новое число по следующим правилам:
Находится сумма цифр, стоящих в двух старших разрядах (сотни и десятки)
Находится сумма цифр, стоящих в двух младших разрядах (десятки и единицы)
Эти две суммы, записанные друг за другом, в порядке не возрастания, формируют новое число.
Например, было введено число 167. Строим сумму старших разрядов – 1 + 6 = 7, строим сумму младших разрядов – 6 + 7 = 13. Полученные две суммы 7 и 13 записываем друг за другом в порядке не возрастания, те 137. Искомое число – 137. Напиши код на Python
Информатика Университет Алгоритмы и структуры данных шифрование паролей защита данных Новый
Давайте разберем задачу и напишем программу на Python, которая реализует описанный алгоритм шифрования трехзначного числа.
Понимание задачи:
Разбиение задачи на шаги:
Реализация на Python:
def encrypt_password(number):
# Преобразуем число в строку, чтобы легко получить каждую цифру
number_str = str(number)
# Получаем цифры сотен, десятков и единиц
hundreds = int(number_str[0])
tens = int(number_str[1])
units = int(number_str[2])
# Считаем сумму старших разрядов (сотни и десятки)
sum_high = hundreds + tens
# Считаем сумму младших разрядов (десятки и единицы)
sum_low = tens + units
# Формируем новое число из двух сумм в порядке не возрастания
if sum_high >= sum_low:
new_number = int(f"{sum_high}{sum_low}")
else:
new_number = int(f"{sum_low}{sum_high}")
return new_number
# Пример использования
original_number = 167
encrypted_number = encrypt_password(original_number)
print(f"Изначальное число: {original_number}, Зашифрованное число: {encrypted_number}")
Объяснение кода:
Этот код позволяет зашифровать любое трехзначное число по заданным правилам.