Гипотеза Коллатца

Представьте себе последовательность целых чисел, организованную следующим образом.

Начинаться последовательность должна с любого положительного числа
Пока последний элемент последовательности не равен единице, выполнять
    Если последний элемент последовательности четный, тогда
        Добавить новый элемент к последовательности путем деления последнего элемента на два с округлением вниз
    Иначе
        Добавить новый элемент к последовательности путем умножения последнего элемента на три с добавлением единицы.

Гипотеза Коллатца утверждает, что подобная последовательность при условии того, что начинается с положительного числа, рано или поздно завершится единицей. И хотя это так и не было доказано, все указывает на то, что это так и есть.

Напишите программу, которая будет запрашивать у пользователя целое число и выводить все числа, начиная с введенного числа и заканчивая единицей. После этого пользователь должен иметь возможность ввести другое число и снова получить ряд чисел, называемый сиракузской последовательностью. Условием выхода из программы должен быть ввод пользователем нуля или отрицательного числа.



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))


Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: