Welcome to HBH! If you had an account on hellboundhacker.org you will need to reset your password using the Lost Password system before you will be able to login.

Javascript 16 - Python Code Bank


Javascript 16
takes less than a second
                ##### target checksum is 88692587, because sum starts with 1, and not 0, we can start sum with 0
##### and treat the checksum as 88692588.
##### because we are using only integers, the checksum must be divisable by the length of the word.
##### The only reasonable lengths for this are 9, 12, 18. 12 being the most reasonable.
##### The equation were solving is:
#####
##### 88692588 / (n + 1) = sum from 1 to N of: (i^3 * Ai^2)
##### where n + 1 is the length of the string, i is the index of the character, Ai is the index of the character in the "tab" array
##### range of characters in tab array: 0, 19-85

targetValue = 7391049

SUCCESS = 0
FAILURE = -1

"""
translate int array to string
"""
def translateArr(arr):
	wordDic = "                   azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789_$&#@"
	wordArr = "a"
	for i in arr:
		wordArr += wordDic[i]
	return wordArr

"""
sums the array by the formula
"""
def arrSum(arr):
	sum = 0
	for i in range(len(arr)):
		sum += (arr[i]**2) * ((i+1)**3)
	return sum

"""
initializes the array
"""
def initArr(arr, fromIndex):
	for i in range(fromIndex):
		arr.append(0)

"""
resets the array memebers from an index downwards
"""
def resetArr(arr, fromIndex):
	for i in range(fromIndex):
		arr[i] = 0

"""
creates an array which will answer the riddle
"""
def createArr(arr, i):
	for j in range(86, 18, -1):
		arr[i] = j
		sum = arrSum(arr)
		if targetValue < sum:
			continue
		if targetValue == sum:
			print translateArr(arr)
			return SUCCESS
		if 0 != i:
			if SUCCESS == createArr(arr, i - 1):
				return SUCCESS
			else:
				resetArr(arr, i)
				continue
	return FAILURE

arr = []
initArr(arr, 11)

createArr(arr, len(arr) - 1)

            
Comments
Sorry but there are no comments to display