Проверка гипотезы Коллатца останавливается на двойке
Я решил проверить гипотезу Коллатца на Python.
И у меня при запуске последнее число - двойка. Если можете, помогите.
import time
x = 1
while True:
is_in_cycle = False
xn = x
while not is_in_cycle:
if xn % 2 == 0:
xn = int(x / 2)
else:
xn = int(x * 3 + 1)
if xn == 4 or xn == 2 or xn == 1:
is_in_cycle = True
print(x)
x += 1
time.sleep(0.5)
Ответы (1 шт):
Автор решения: Fexonchik
→ Ссылка
Я понял. Надо было заменить в одном месте:
if xn % 2 == 0:
xn = int(x / 2)
else:
xn = int(x * 3 + 1)
на
if xn % 2 == 0:
xn = int(xn / 2)
else:
xn = int(xn * 3 + 1)
, то есть заменить x на xn.