jueves, 2 de diciembre de 2010

Otros problemas ya solucionados - Proyecto Euler

Después de encontrar la solución al problema de los palíndromos, (algo que dio que pensar) el quinto problema también fue muy interesante de resolver aunque más cómodo, lo más interesante de este problema es que así como el de los palíndromos, el script generado permite poner a prueba la capacidad de procesamiento de la máquina, el quinto problema, mi laptop tardó 28 minutos en arrojar la respuesta mientras que mi desktop solamente tardó 8 minutos en conseguirlo dedicando solamente uno de sus cuatro núcleos.

El problema consiste en encontrar el número positivo más pequeño que es divisible por toda la serie de naturales del 1 al 20, la respuesta correcta es 232792560.

El script generado para conseguirlo fue el siguiente

%Encuentra el número más pequeño que es divisible por toda la serie de y
%hasta n
n=input('Escriba el número de divisores '); %dividendo inicial
d=(1:n); %vector de los divisores
r=rem(n,d); %vector de los remanentes
while any(r)==1 %si alguno de los remanentes no es cero
    n=n+1; %nuevo dividiendo
    r=rem(n,d);
end
if r==0 %cuando todos los remanentes son cero
    disp(n);
    disp(r);
end


Después de este problema apareció uno que es muy fácil de solucionar. Encontrar la diferencia entre la suma de los cuadrados de los 100 primeros naturales y el cuadrado de la suma de los 100 primeros naturales. Respuesta 25164150. Para este problema no es necesario generar ningún script, simplemente generar un vector de naturales del uno (1) al veinte (20) y utilizar la función suma.

N=(1:20) %genera un vector de naturales del uno al veinte
d=sum(N.^2)-(sum(N))^2


y eso es todo. El siguiente problema también es algo muy simple de resolver. Piden encontrar el número primo 10001, que utilizando la función primes se encuentra en un par de segundos.

Sigo abordando los problemas del proyecto Euler, voy apara el octavo problema.
esDebian

0 comentarios:

Publicar un comentario en la entrada