def recurse(num): result = [] while (num != 1): result.append(num) if (num % 2 == 0): num = int(num / 2) else: num = 3 * num + 1 result.append(num) return result longest = 0 longest_start = 0 for i in range(1, 1000000): result = recurse(i) length = len(result) if (length > longest): longest = length longest_start = i print(longest) print(longest_start) # answer 837799