# На вход алгоритму Галиб-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=[]
k0 = s.count("0")
k1 = s.count("1")
k2 = s.count("2")
k3 = s.count("3")
k4 = s.count("4")
k5 = s.count("5")
k6 = s.count("6")
k7 = s.count("7")
k8 = s.count("8")
tempmax = max(k0,k1,k2,k3,k4,k5,k6,k7,k8)
mas=[]
if k0 == tempmax: mas.append(0)
if k1 == tempmax: mas.append(1)
if k2 == tempmax: mas.append(2)
if k3 == tempmax: mas.append(3)
if k4 == tempmax: mas.append(4)
if k5 == tempmax: mas.append(5)
if k6 == tempmax: mas.append(6)
if k7 == tempmax: mas.append(7)
if k8 == tempmax: mas.append(8)
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)