-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodule2hard.py
More file actions
35 lines (30 loc) · 1.8 KB
/
Copy pathmodule2hard.py
File metadata and controls
35 lines (30 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
FIRST_NUMBER_START = 3 # Начало интервала чисел из "первой вставки"
FIRST_NUMBER_END = 20 # Конец интервала чисел из "первой вставки"
TRY_NUMBER_START = 1 # Начало интервала чисел для подбора пароля (концом является first_number)
# Входная функция
def main():
try:
print(f'Пароль: {password_for(get_first_number())}')
except ValueError:
print('Если не можете ввести правильное первое число, Вам кирдык!')
# Возвращает "пары чисел друг за другом, чтобы число из первой вставки было кратно сумме их значений."
def password_for(number):
password = str()
for try_number1 in range(TRY_NUMBER_START, number):
for try_number2 in range(try_number1 + 1, number):
if number % (try_number1 + try_number2) == 0:
password += f'{try_number1}{try_number2}'
return password
# Считывает с клавиатуры и возвращает число из "первой вставки"
# Число должно находиться в интервале FIRST_NUMBER_START <= число <= FIRST_NUMBER_END
def get_first_number():
first_number = int(input('Первое число: '))
if (FIRST_NUMBER_START <= first_number <= FIRST_NUMBER_END):
return first_number
raise ValueError
# Вспомогательная функция для проверки работы password_for(number)
def print_all_passwords():
for first_number in range(FIRST_NUMBER_START, FIRST_NUMBER_END):
print(f'{first_number} - {password_for(first_number)}')
# Поехали!
main()