Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for The Good Radix by Kurush
# migrated from python 2.7
import string
def checkio(number):
number = number.upper()
AlphabetString = string.digits + string.uppercase
AlphabetList = list(AlphabetString)
Occured = {}
for Letter in AlphabetList:
Occured[Letter] = 0
for Letter in number:
if Letter in AlphabetList:
Occured[Letter] = 1
for Letter in reversed(AlphabetString):
if Occured[Letter] == 1:
MinRadix = AlphabetString.find(Letter) + 1
break
for i in range (MinRadix, 37):
Number = int(number, i)
if Number % (i - 1) == 0:
return i
return 0
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio("18") == 10, "Simple decimal"
assert checkio("1010101011") == 2, "Any number is divisible by 1"
assert checkio("222") == 3, "3rd test"
assert checkio("A23B") == 14, "It's not a hex"
print('Local tests done')
Oct. 1, 2013