El cuarto problema que plantea el proyecto Euler propone encontrar el mayor palíndromo generado por el producto de números de tres cifras, una tarea que por simple inspección se puede determinar como algo nada fácil de hacer a lápiz y papel ya que del producto de números de tres cifras se generan 988200 resultados. El trabajo para construir el script que calcule todos estos resultados, seleccione de allí los 628 palíndromos y encuentre entre todos estos el más grande, no fue algo de pocos minutos, es más, aunque no trabajaba en este problema hace algunos días, si puedo decir que fueron aproximadamente 12 horas las que me todo el construir este script que aproximadamente en 5 minutos (en mi laptop) arroja de respuesta de 906609, el mayor palíndromo generado por el producto de dos números de tres cifras.
for i=100:999 %crea una matriz cuadrada P(ixn) con los productos de todos los valores de x cifras
for n=100:999
P(i,n)=i*n;
end
end
for j=1:length(P) %Por ser P una matriz cuadrada la búsqueda la hace con el tamaño de la matriz
for q=1:length(P)
if P(j,q)~=0 %Por no iniciar en 1 existen algunos ceros en P, se descartan
k=num2str(P(j,q)); %Convierte cada entrada de P en una cadena
if k==seqreverse(k) %Compara cada entrada de P con su escritura inversa
%disp(str2num(k)); %activar por si se quiere ver la lista de todos los palíndromos
M(q^2)=str2num(k);
Pm=max(M);
end
end
end
end
disp(Pm)
0 comentarios:
Publicar un comentario en la entrada