Euler 4 (Python)
Este post fue migrado de un blog hecho con Wordpress. Si se ve mal, dejame un comentario y lo arreglo.
Enunciado 4
Un número palíndromo se lee igual en ambos sentidos. El mayor palíndromo construido a partir del producto de dos números de dos dígitos es 9009 = 91 × 99.
Encontrar el mayor palíndromo que se puede construir como el producto de dos números de tres dígitos.
Solución
La solución fue obtenida en el intérprete interactivo de Python 3.0rc1+. Necesitaba Python 3 para utilizar itertools.combinations:
juanjo@fenix:~$ python3 Python 3.0rc1+ (py3k, Oct 28 2008, 09:23:29) [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from itertools import combinations >>> tri = range(999, 99, -1) >>> mults = [] >>> for a,b in combinations(tri, 2): ... s = str(a*b) ... if s == s[::-1]: ... mults.append(int(s)) ... >>> max(mults) 906609
Python tips
-
combinations
genera la combinación con los elementos de la lista argumento tomados de a n, si se especifica el parámetro n. - En Python 3
print
deja de ser una sentencia para convertirse en una función, por lo que siempre debe ser llamado con parámetros. -
unString[::-1]
es un idiom usado para invertir una cadena de texto (en el ejemplo,unString
). Se lee: los elementos de unString, desde el principio al final, con paso -1.
Comentarios
Comments powered by Disqus