(О. Лысенков) На вход алгоритма подаётся неотрицательное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Полученная таким образом запись является \(19\)-ричной записью искомого числа \(R.\) Найдите количество чисел \(N,\) принадлежащих отрезку \([1; \,10000],\) для которых результат работы алгоритма кратен либо \(5,\) либо \(3,\) но не обоим числам одновременно.
Решение:
Python
def conv(n):
if not n:
return '0'
ans = ''
alph = '0123456789ABCDEFGHI'
while n:
ans = alph[n % 19] + ans
n //= 19
return ans
def R(N):
d = conv(N)
if sum(int(x, 19) for x in d) % 2 == 0:
return int(d[-1] + d[:-1] + '1', 19)
return int('B' + d[1:] + d[0], 19)
q = 0
for N in range(1, 10_001):
r = R(N)
q += (r % 5 == 0 or r % 3 == 0) and r % 15 != 0
print(q)
Ответ: \(4002\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене