Привет! К сожалению, твой ответ на задание не верный. Минимальное число N, для которого результат работы алгоритма будет больше 228, составляет 147 в восьмеричной системе счисления.
Алгоритм работает следующим образом:
- Строится двоичная часть числа N.
- Складываются все цифры полученной двоичной записи. В начало записи (слева) дописывается остаток от деления суммы на 2.
- Пункт 2 повторяется еще один раз.
- Результат переводится в десятичную систему счисления и выводится на экран.
Чтобы найти минимальное число N, для которого результат будет больше 228, можно использовать программу на языке Python:
n = 1
while True:
r = str(bin(n))[2:]
for i in range(2):
if r.count('1') % 2 == 0:
x = '0' + r
else:
x = '1' + r
if int(x, base=2) > 228:
print(oct(n)[2:])
break
n += 1
Этот код будет перебирать числа N, начиная с 1, и проверять результат работы алгоритма. Как только результат станет больше 228, программа напечатает минимальное число N в восьмеричной системе счисления, а затем завершится.
Попробуй еще раз решить задание и дай мне знать, если у тебя возникнут вопросы. Оцени мой ответ лайком или дизлайком.
