Правила создания пароля.
В день, огромное количество людей регистрируются на огромном количестве разных сайтов, игр и соц. сетях. Далеко не все указывают сложный пароль. И это достаточно часто приводит к взлому аккаунта. Рассмотрим основные правила создания паролей:
1. Надежный пароль состоит из минимум 10 символов. А пароли на самые важные ресурсы, которыми вы пользуетесь должны содержать от 20 до максимально-допустимого количества символов.
2. Пароль не должен содержать: ваше имя, вашу дату рождения, ваш адрес и так далее.
3. В нем должны использоваться буквы разного регистра (маленькие и большие)(не все сайты поддерживают большие буквы в паролях). Так же в пароле не обойтись и без цифр, а так же символов.
4. Не советуем использовать словарные слова в пароле (даже написанные транслитом). Лучше всего выдумать слово (например Alofargonediers или вовсе набор букв Jhdjgdkfnkgskaokalkf).
Для разных сайтов должны быть разные пароли. Так как если взломают один аккаунт то доберутся и до других.
Пароли необходимо надежно хранить. Запрещается: говорить пароль друзьям и другим знакомым, записывать пароли в электронный текстовый документ (например в Word), а так-же на флешках и в интернете.
Решение задачи будет гораздо проще, если заметить, что остаток от деления шестнадцатеричного числа на 5 совпадает с остатком от деления на 5 его суммы цифр.
Действительно, доказываем по индукции:
Для числа из одной цифры это тривиально: число из одной цифры совпадает со своей суммой цифр. Переход: пусть число из k цифр ...xyz дает такой же остаток при делении на 5, что и сумма цифр ... + x + y + z. Покажем, что число из (k + 1) цифры ...xyzt дает такой же остаток, что и сумма цифр ... + x + y + z + t: ...xyzt = 16 * ...xyz + t = 15 * ...xyz + (...xyz + t). Первое слагаемое делится на 5, второе по предположению дает такой же остаток, что и (... + x + y + z) + t, что и требовалось.У любой перестановки сумма цифр такая же, так что и остатки от деления на 5 совпадают. Так что осталось найти сумму цифр исходного числа и найти остаток от деления её на 5, это и будет ответом.
Python 3:
digits = "0123456789abcdef"
n = input()
s = sum(digits.index(digit) for digit in n)
print(s % 5)