basefactorielle.py

Created by nicolas-patrois

Created on December 31, 2018

219 Bytes

Décompose un nombre dans la base factorielle, ainsi 1024=2×2!+2×3!+2×4!+2×5!+1×6!.


def basefact(n):
  f=1
  p=1
  while f<=n:
    p+=1
    f*=p
  f//=p
  p-=1
  l=[]
  while p:
    r,n=divmod(n,f)
    if r:
      l.insert(0,"%d*%d!"%(r,p))
    f//=p
    p-=1
  return "+".join(l)