|
|
|
@ -0,0 +1,24 @@ |
|
|
|
from functools import reduce |
|
|
|
from operator import mul |
|
|
|
def _base(n,b): |
|
|
|
out =[] |
|
|
|
while n: |
|
|
|
out.append(n%b) |
|
|
|
n //= b |
|
|
|
return out |
|
|
|
|
|
|
|
def _multbase(n,bases): |
|
|
|
out = [] |
|
|
|
if functools.reduce(mul,bases) < n: |
|
|
|
raise ValueError("Not enough bases/not big enough") |
|
|
|
for base in reversed(bases): |
|
|
|
out.append(n%bases) |
|
|
|
n //= base |
|
|
|
if not n: |
|
|
|
return out |
|
|
|
|
|
|
|
def base(n,base_arg): |
|
|
|
try: |
|
|
|
return _multbase(n,base_arg |
|
|
|
except ValueError: |
|
|
|
return _base(n,base_arg) |