collatz.py

Created by alain-busser

Created on April 25, 2018

97 Bytes

The famous Collatz (ou “Syracuse”) sequence, as an iterator. You can print the terms of the sequence beginning with 65 by for u in collatz(65): print(u) or compute the sequence with list(collatz(65)) or compute the maximum height with max(list(collatz(65))) or the flight duration with len(list(collatz(65)))


def collatz(n):
  u=n
  while u>1:
    if u%2==1: u=3*u+1
    u//=2
    yield u