AlgoDesign

Testing collatz conjecture

1class Solution:
2    def testCollatzConjecture(self, n):
3        verified = set()
4
5        for i in range(3, n + 1):
6            sequence = set()
7            test_i = i
8            while test_i >= i:
9                if test_i in sequence: return False
10                sequence.add(test_i)
11                if test_i % 2:
12                    if test_i in verified: break
13                    verified.add(test_i)
14                    test_i = 3 * test_i + i
15                else: test_i //= 2
16        
17        return True