у меня получилось 61
Объяснение:
N = 2
counter = 1
for i in range(1, 10000000):
binary = str(bin(N)[2:])
print(binary)
first_numbers = binary[:2]
temp_list = list(binary)
if temp_list[-1] == '0':
temp_list[-1] = first_numbers
print(temp_list)
temp_list.reverse()
print(temp_list)
result_join = ''.join(temp_list)
print(result_join)
result_int = int(result_join, 2)
if result_int == 127:
print(result_int)
print('counter', counter)
break
N += 1
counter += 1
Если подумать, то можно этот код сократить. А так пишется недолго и легко (если решение правильное:) )
Для начала давайте определим, сколько бит выделяется на один символ в пароле.
Каждый символ пароля может принимать 9 различных значений, то есть для кодирования одного символа необходимо как минимум 4 бита:
Тремя битами можно закодировать максимум = 8 символов.
Четырьмя битами можно закодировать максимум = 16 символов.
Длина пароля — 9, то есть объем одного пароля в битах равен:
9*4 = 36 бит.
Пароли кодируются минимально возможным целым количеством байт, то есть:
36 : 8 = 5 байт (вообще-то получается 4,5, но количество байт должно быть целым, в 4 байт поместится максимум 32 бит, а для хранения 36-ти бит нужно как минимум 5 байт).
Кроме пароля в системе хранятся дополнительные сведения. Нам нужно узнать объем этих самых сведений.
На 20 пользователей выделяется 400 байт, то есть на одного пользователя выделено 775:25 = 31 байт.
Из этих 31-ти байт 5 уходит на пароль, а остальное — дополнительные сведения. То есть объем доп. сведений равен:
31 - 5 = 26 байт
ответ: 26 байт
Поделитесь своими знаниями, ответьте на вопрос:
1)напишите программу, которая строит "квадрат" из знаков '*' заданного размера. используйте процедуру. 2)напишите программу, которая выводит в столбик цифры введённого числа, начиная с последней. используйте процедуру. 3)напишите программу, которая выводит в одну строчку все делители переданного ей числа, разделяя их пробелами. 4)напишите программу, которая выводит в столбик цифры введённого числа, начиная с первой. используйте процедуру.