# На вход алгоритму Галиб-001 подаётся натуральное число N. Алгоритм строит
# по нему новое число R следующим образом:
# 1) Строится девятиричная запись числа N.
# 2) Подсчитывается количество пятёрок и семёрок в полученной записи. Если их
# количество одинаково, в конец записи добавляется её последняя цифра. В противном
# случае в конец записи добавляется цифра, которая встречается чаще. Если таких цифр
# несколько, выбирается наибольшая по значению.
# 3) Шаг 2 повторяется ещё четыре раза.
# 4) Результат переводится в шестнадцатиричную систему счисления.
# При каком наибольшем исходном числе N < 10000 в результате работы алгоритма получится
# число, которое содержит в себе сочетание BAC?
def nine(n):
s=""
while(n>0):
o=n%9
n=n//9
s+=str(o)
return s[::-1]
def maxCount(s):
m1=[]
for i in range(9):
m1.append(s.count(str(i)))
tempmax = max(m1)
mas=[]
for i in range(len(m1)):
if m1[i] == tempmax:
mas.append(i)
return str(max(mas))
for n in range(1,10000):
N=nine(n)
# print(N)
for i in range(5):
k5=N.count("5")
k7=N.count("7")
if k5==k7:
N+=N[-1]
else:
N+=maxCount(N)
# print(N)
rezult=hex(int(N,9))[2::]
# print(n,rezult)
if rezult.count("bac")!=0:
print(n,rezult)