ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ
import hashlib def calculate_sacred_number(): results = [] for hash_algorithm in hashlib.algorithms_available: # || - # \\ ( MD5, RIPEMD, SHA BLAKE, β 32 ) if "shake" in hash_algorithm: # SHAKE, length hexdigest() continue for uppercase in range(2): # || , for space in range(2): # || for n in range(10, 100): # || global numbers nw = numbers[n] # || , if uppercase: nw = nw.upper() if space: nw = nw.replace('-', ' ') ns = str(n) digest1 = hashlib.new(hash_algorithm, nw.encode()).hexdigest() # || , digest2 = hashlib.new(hash_algorithm, ns.encode()).hexdigest() # || , for i in range(2): # // , if ( digest1[ 0] == ns[0] and digest2[ 0] == ns[0] # || ... and digest1[-1] == ns[1] and digest2[-1] == ns[1]): # || ... . results += [ns] # // digest1 = digest1[:len(digest1)//2] digest2 = digest2[:len(digest2)//2] assert(len(results) == 1) # || "" return results[0] # || # // From [https://stackoverflow.com/a/8982279/2692494 'How do I tell Python to convert integers into words']: numbers = "zero one two three four five six seven eight nine".split() numbers.extend("ten eleven twelve thirteen fourteen fifteen sixteen".split()) numbers.extend("seventeen eighteen nineteen".split()) numbers.extend(tens if ones == "zero" else (tens + "-" + ones) for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split() for ones in numbers[0:10]) print(calculate_sacred_number())
Source: https://habr.com/ru/post/349592/
All Articles