def solve022(names): names.sort() sum_ = 0 for i in range(len(names)): name = names[i] name_score = [General.letter_num(letter) for letter in name] sum_ += sum(name_score) * (i + 1) return sum_
def solve004(digit_size): check_size = digit_size // 10 checks = range(digit_size - check_size, digit_size) mult_table = Basic.multiplication_table(checks, checks) palindromes = list() for row in mult_table: for num in row: if General.is_palindrome(num): palindromes.append(num) return max(palindromes)
def num_factors_of(num): primes = prime_factors_of(num) count_values = General.count_list(primes).values() return Basic.product([x + 1 for x in count_values])
def solve067(triangle): start = triangle.pop() return General.max_two_lower(start, triangle)
def solve025(digits): fibonacci = [1, 1] while General.num_digits(fibonacci[-1]) < digits: fibonacci.append(fibonacci[-1] + fibonacci[-2]) return len(fibonacci)
def solve020(num): factorial = Basic.factorial(num) return General.sum_of_digits(factorial)
def solve017(words, limit): num_words = str() for i in range(1, limit): num_words += General.num_as_word(i, words).replace(" ", "") return len(num_words)
def solve016(exponent): num = 2 ** exponent return General.sum_of_digits(num)
def solve014(limit): iterations = NumberTheory.collatz_iterations_under(limit) return General.key_with_max_value(iterations)
def solve013(nums, digits): return General.first_digits(sum(nums), digits)
def solve011(data, length): return General.max_product_of(data, length)