diff -r 0471f8694075 -r 9fbd2a71fef2 day1/exercise/find_pow_2.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/day1/exercise/find_pow_2.py Thu Oct 08 19:06:57 2009 +0530 @@ -0,0 +1,29 @@ +def is_pow_2(n): + bin_count = 0 + while n > 0: + if n % 2 == 1: + bin_count += 1 + if bin_count > 1: + return False + n /= 2 + + return bin_count == 1 + +def collatz_pow_2(n): + if n == 1: return 4 + if n == 2: return 4 + collatz_pow_2 = [] + while n > 2: + print n, + if is_pow_2(n): + collatz_pow_2.append(n) + + if n % 2: + n = n * 3 - 1 + else: + n /= 2 + + return max(collatz_pow_2) + +import sys +collatz_pow_2(int(sys.argv[1]))