Advertisement
DanFloyd

Decomposer

Sep 3rd, 2015
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.59 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. # This program decomposes the number 'exp' into a sum of powers of 2
  4.  
  5. import sys
  6.  
  7. fail = 'Must give me a positive integer fella'
  8.  
  9. try:
  10.     exp = int(sys.argv[1])
  11. except:
  12.     sys.exit(fail)
  13.  
  14. if (exp <= 0):
  15.     sys.exit(fail)
  16.  
  17. i = 0 # exponent
  18. num = 0 # number to compare with exp
  19. last = 0 # an helper variable
  20. factors = list() # list of factors
  21.  
  22. while (exp > 0):
  23.     while (num < exp):
  24.         last = num
  25.         num = 2**i
  26.         i = i+1
  27.     if (num == exp):
  28.         exp = exp-num
  29.         factors.append(num)
  30.     else:
  31.         exp = exp-last
  32.         factors.append(last)
  33.     i = 0
  34.     num = 0
  35.  
  36. print factors
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement