Мне удается решить четвертую задачу Project Euler, и я хочу сделать еще один шаг, не только найдя ответ, но и присвоив ему соответствующие 3-значные умножающие цифры. Я в основном хочу назначить соответствующие кратные значения для палиндрома, т.е. {палиндром: цифра1 цифра2}. это цифра 1 * цифра 2 = палиндром.
Для тех из вас, кто не прошел Project Euler, вот вопрос:
Палиндромное число читается одинаково в обоих направлениях. Самый большой палиндром, созданный из произведения двух двузначных чисел, равен 9009 = 91 × 99. Найдите самый большой палиндром, созданный из произведения двух трехзначных чисел.
ns = str(n)
ns_list = []
ns_list_to_int = []
#outside for loop with first 3-digit 'num' and inside loop with second 3-digit 'i'
for num in range (100,1000):
for i in range(100,1000):
n = i*num
#need to convert to string & check if reverse of string == string, if so append to list
ns = str(n)
if ns[::-1] == ns:
ns_list.append({ns:str(i) + ' 'str(num) })
#recreate new list with integers to sort
for i in ns_list:
ns_list_to_int.append(int(i))
#sort in descending order and call the first number
ns_list_to_int = sorted(stuffs, key=int, reverse=True)
ns_list_to_int[0]
пытался получить его с помощью ns_list.append ({ns: str (i) + '' str (num)}), но, похоже, это не работает. Кроме того, не уверен, как тогда я смог бы отсортировать его, если это словарь.