Представьте себе последовательность целых чисел, организованную следующим образом.
Начинаться последовательность должна с любого положительного числа
Пока последний элемент последовательности не равен единице, выполнять
Если последний элемент последовательности четный, тогда
Добавить новый элемент к последовательности путем деления последнего элемента на два с округлением вниз
Иначе
Добавить новый элемент к последовательности путем умножения последнего элемента на три с добавлением единицы.
Гипотеза Коллатца утверждает, что подобная последовательность при условии того, что начинается с положительного числа, рано или поздно завершится единицей. И хотя это так и не было доказано, все указывает на то, что это так и есть.
Напишите программу, которая будет запрашивать у пользователя целое число и выводить все числа, начиная с введенного числа и заканчивая единицей. После этого пользователь должен иметь возможность ввести другое число и снова получить ряд чисел, называемый сиракузской последовательностью. Условием выхода из программы должен быть ввод пользователем нуля или отрицательного числа.
while True:
number = float(input("Введите стартовое число (ноль или отрицательное для выхода): "))
if number <= 0:
break
while (number != 1):
if (number % 2 == 0):
number = number / 2
else:
number = 3 * number +1
print(int(number))
