Created
February 18, 2020 19:12
-
-
Save Angehl/8ec80b96dbc291f880178f0fcae3011e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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