На вход алгоритма подается натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится троичная запись числа N.
2. Если N
3. Результат R переводится в десятичную систему счисления и выводится на экран.
Укажите минимальное число N, после обработки которого автомат получает число,
Приведём решение на языке Python.
for i in range(1, 100):
n = i
m = 0
r = 0
s = ""
t = ""
while n > 0: # перевод в троичную систему
s += str(n % 3)
n //= 3
s = s[::-1]
if i % 3 != 0:
m = i % 3 * 5
while m > 0:
t += str(m % 3)
m //= 3
t = t[::-1]
s += t
r = int(s,3)
if r > 146:
print(i)
break
Ответ: 8.
Приведём решение Михаила Глинского на языке Python.
def F(n):
s=''
while n > 0:
s=str(n % 3) + s
n=n // 3
return s
m=set()
for N in range (1,100):
s=(F(N))
if N % 3 != 0:
s=s + F((N % 3) * 5)
r=int(s,3)
if r > 146:
m.add(N)
print(min(m))

