Problème 4 "Calligraphie maximale"
Le nombre de fois qui a la même valeur en lecture à gauche ou à droite est appelé le nombre de fois. Du nombre de fois exprimé par le produit de deux chiffres, le nombre maximum est 9009 = 91 x 99. Ensuite, trouvez le nombre maximum de fois exprimé par le produit de nombres à trois chiffres.
Python
digits = 3
min_num = 10 ** (digits - 1)
max_num = (10 ** digits) - 1
seq = range(min_num ** 2, (max_num ** 2) + 1)
def is_kaibun(x):
x_str = str(x)
x_str_reverse = x_str[::-1]
return x_str == x_str_reverse
def is_same_digits(num1, num2):
return len(str(num1)) == len(str(num2))
result_dic = {}
for x in seq:
if(is_kaibun(x)):
for i in range(min_num, max_num+1):
if x % i == 0 and is_same_digits(i, x/i):
result_dic[x] = (i, x/i)
break
result = max(result_dic.keys())
print result
print result == 906609
print result_dic[result]
résultat
906609
True
(913, 993)
Recommended Posts