# Python 3.X
from random import randint
def randchar():
while True:
ret = randint(65, 123)
if not 90 < ret < 97:
return chr(ret)
s = input()
for c in s:
print(c, randchar(), randchar(), sep='', end='')
А) 247 "5"
Выполним несколько первых шагов алгоритма:
1 "2", 244 "5"
2 "2", 241 "5"
3 "2", 238 "5"
239 "5"
1 "2", 236 "5"
2 "2", 233 "5"
3 "2", 230 "5"
231 "5"
Очевидно, что из 231 "5" получим в конце концов 7 "5"
(231-8*28=231-224=7):
7 "5"
А далее:
1 "2", 4 "5"
2 "2", 1 "5"
Таким образом, из 247 "5" получится строка "225"
Б) Рассуждая аналогичным образом, из 247 "2" получим строку "552"
Для задания цвета одного квадратика вышивки требуется log(2)8 = 3 бита.
Для хранения всей вышивки - 45*48*3 = 6480 бит