Представьте себе последовательность целых чисел, организованную следующим образом.
Начинаться последовательность должна с любого положительного числа
Пока последний элемент последовательности не равен единице, выполнять
Если последний элемент последовательности четный, тогда
Добавить новый элемент к последовательности путем деления последнего элемента на два с округлением вниз
Иначе
Добавить новый элемент к последовательности путем умножения последнего элемента на три с добавлением единицы.
Гипотеза Коллатца утверждает, что подобная последовательность при условии того, что начинается с положительного числа, рано или поздно завершится единицей. И хотя это так и не было доказано, все указывает на то, что это так и есть.
Напишите программу, которая будет запрашивать у пользователя целое число и выводить все числа, начиная с введенного числа и заканчивая единицей. После этого пользователь должен иметь возможность ввести другое число и снова получить ряд чисел, называемый сиракузской последовательностью. Условием выхода из программы должен быть ввод пользователем нуля или отрицательного числа.
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))