Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZαβγδεζηθικλμνξοπρστυφχψω"
- # Search for bases up to b
- def powers(b):
- # Bases where some number passed
- bases = []
- for base in range(2,b+1):
- # Did any number in base pass the test?
- pass_in_base = False
- for i in range(1025):
- # Get p as a list of powers in base
- p = convert_base(2**i, base)
- powers_of_2 = []
- # Get all one-digit powers of 2 up
- j = 0
- while 2**j < base:
- powers_of_2.append(2**j)
- j += 1
- # Check whether p cointains a power of 2
- p_passes = True
- for power in powers_of_2:
- if power in p:
- p_passes = False
- if p_passes:
- # Remove comment and break to show which numbers passed
- '''p_str = ""
- for j in p:
- p_str += digits[j]
- print("In base", base, "the following number passes", p_str)'''
- pass_in_base = True
- break
- if pass_in_base:
- bases.append(base)
- print(bases)
- def convert_base(n, b):
- if n == 0:
- return [0]
- digits = []
- while n:
- digits.append(int(n % b))
- n //= b
- return digits[::-1]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement