day1/exercise/find_pow_2.py
changeset 64 333092b68926
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/day1/exercise/find_pow_2.py	Thu Oct 08 18:59:47 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]))