alexkam пишет:
цитата: |
В решении указано 2,3,7 а в самом условии 2,3,5 |
|
вот условие:
263) Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом:
1) Если исходное число кратно
2, оно делится на 2, иначе из него вычитается 1.
2) Если полученное на предыдущем шаге число кратно
3, оно делится на 3, иначе из него вычитается 1.
3) Если полученное на предыдущем шаге число кратно
7, оно делится на 7, иначе из него вычитается 1.
4) Число, полученное на шаге 3, считается результатом работы алгоритма.
Сколько существует различных натуральных чисел N, при обработке которых получится R = 2?
def alg(x):
for d in [2, 3, 7]:
if x % d == 0:
x //= d
else:
x -= 1
return x
cnt = 0
for x in range(100000):
if alg(x) == 2:
print(x, alg(x))
cnt += 1
print( cnt )
вот распечатка работы программы, что не так?
5 2
8 2
18 2
43 2
84 2
5
Покажите свое решение!