Skip to content

Instantly share code, notes, and snippets.

@Angehl
Created February 18, 2020 19:12
Show Gist options
  • Select an option

  • Save Angehl/8ec80b96dbc291f880178f0fcae3011e to your computer and use it in GitHub Desktop.

Select an option

Save Angehl/8ec80b96dbc291f880178f0fcae3011e to your computer and use it in GitHub Desktop.
characters =['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
nletters = len(characters)
def prires(letters, x):
ret = ""
for l in letters:
ret = ret + characters[l]
if x > 0:
ret = str(x) + ret
padding = "0"*(6-len(ret))
return padding + ret
def oneLetter(x):
x = x-10**6
letter = int(x/10**5)
x = x%10**5
return prires([letter],x)
def twoLetters(x):
x = x - 10**6 - 10**5*nletters
letters=[0,0]
letter = int(x/10**4)
letters[0] = int(letter/nletters)
letters[1] = letter%nletters
x = x%10**4
return prires(letters, x)
def threeLetters(x):
x = x - 10**6 - 10**5*nletters - nletters**2*10**4
letters=[0,0,0]
letter = int(x/10**3)
letters[0] = int(letter/(nletters**2))
letters[1] = int(letter/nletters)%nletters
letters[2] = letter%nletters
x = x%10**3
return prires(letters, x)
def fourLetters(x):
x = x - 10**6 - 10**5*nletters - nletters**2*10**4 - nletters**3*10**3
letters=[0,0,0,0]
letter = int(x/10**2)
letters[0] = int(letter/(nletters**3))
letters[1] = int(letter/nletters**2)%nletters
letters[2] = int(letter/nletters)%nletters
letters[3] = letter%nletters
x = x%10**2
return prires(letters, x)
def fiveLetters(x):
x = x - 10**6 - 10**5*nletters - nletters**2*10**4 - nletters**3*10**3 - nletters**4*10**2
letters=[0,0,0,0,0]
letter = int(x/10)
letters[0] = int(letter/(nletters**4))
letters[1] = int(letter/(nletters**3))%nletters
letters[2] = int(letter/nletters**2)%nletters
letters[3] = int(letter/nletters)%nletters
letters[4] = letter%nletters
x = x%10
return prires(letters, x)
def sixLetters(x):
x = x - 10**6 - 10**5*nletters - nletters**2*10**4 - nletters**3*10**3 - nletters**4*10**2 - nletters**5*10
letters=[0,0,0,0,0,0]
letter = int(x)
letters[0] = int(letter/(nletters**5))
letters[1] = int(letter/(nletters**4))%nletters
letters[2] = int(letter/(nletters**3))%nletters
letters[3] = int(letter/nletters**2)%nletters
letters[4] = int(letter/nletters)%nletters
letters[5] = letter%nletters
x = 0
return prires(letters, x)
def matricula (x):
acc = 10**6
if(x < acc):
return str(x)
acc = acc + nletters*10**5
if(x < acc):
return oneLetter(x)
acc = acc + nletters**2*10**4
if(x < acc):
return twoLetters(x)
acc = acc + nletters**3*10**3
if(x < acc):
return threeLetters(x)
acc = acc + nletters**4*10**2
if(x < acc):
return fourLetters(x)
acc = acc + nletters**5*10
if(x < acc):
return fiveLetters(x)
acc = acc + nletters**6
if(x < acc):
return sixLetters(x)
return str(x)
number = 3860000
print(str(number) +": " + matricula(number))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment