baseimoins1.py

Created by nicolas-patrois

Created on December 15, 2018

295 Bytes

Décompose un nombre dans la base i-1. Comme 5=(i-1)^8+(i-1)^7+(i-1)^6+(i-1)^4+1, on écrit que 5=111010001 dans la base i-1.


def baseneg(n,b):
  if b==0:
    return "0"
  ch=""
  while n:
    n,r=divmod(n,b)
    if r<0:
      n,r=n+1,r-b
    ch=str(r)+ch
  return ch

def baseim1(n):
  return "".join(["0000","0001","1100","1101"][c] for c in list(map(int,str(baseneg(n,-4))))).lstrip("0") if n else 0