Skip to content

Latest commit

 

History

History
41 lines (32 loc) · 1.26 KB

File metadata and controls

41 lines (32 loc) · 1.26 KB

Task2.4

Task description

Гипотеза Коллатца может быть кратко выражена следующим образом:

Берём любое натуральное число n, если оно чётное, то делим его n / 2 если нечётное, то умножаем на 3 и прибавляем 1 (получаем 3n + 1) над полученным числом выполняем те же самые действия, и так далее.

Гипотеза Коллатца заключается в том, что какое бы начальное число n мы ни взяли, рано или поздно мы получим единицу.

Пример

Для числа 12:
12
6
3
10
5
16
8
4
2
1
Всего получаем 9 шагов.

Задача Вычислить число шагов для числа n, согласно гипотезе Коллатца необходимых для достижения этим числом единицы.

Report

File 2.4

def collatz(n, c=0):
    print(int(n))
    if (n == 1): return "Всего шагов: {}".format(c)
    return collatz(n/2, c + 1) if (n % 2 == 0) else collatz(3*n + 1, c + 1)
print(collatz(27))