#! /usr/bin/python # The Collatz conjecture def collatz(n): " the function for collatz " if n % 2: return 1 + (n * 3) else: return int(n / 2) ## generate the series based on Collatz def cseries(n): print(n) if n == 1: print ("done") else: cseries(collatz(n)) ## see http://sahandsaba.com/python-iterators-generators.html ## x = collatzg(19) ## next(x) def collatzg(n): yield n while n != 1: n = n / 2 if n % 2 == 0 else 3 * n + 1 n = int(n) yield n if __name__ == '__main__': import sys print (sys.argv) if len(sys.argv) > 1: for n in sys.argv[1:]: cseries(int(n))