basenegative.py

Created by nicolas-patrois

Created on December 15, 2018

170 Bytes

Décompose un nombre entier dans une base négative. Ainsi, 30=(-3)^4+2(-3)^3+1(-3)^2+2*(-3)+0 donc 30=12120 en base -3. Les chiffres sont séparés par | en prévision des bases>10.


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[:-1]