Foros del Web » Programando para Internet » PHP »

optimizar codigo / algoritmos

Estas en el tema de optimizar codigo / algoritmos en el foro de PHP en Foros del Web. Hola a todos ! la verdad es que sigo de hace tiempo el foro cada vez q tengo una duda, mi cuenta no la pude ...
  #1 (permalink)  
Antiguo 08/09/2013, 20:49
 
Fecha de Ingreso: septiembre-2013
Mensajes: 1
Antigüedad: 10 años, 7 meses
Puntos: 0
optimizar codigo / algoritmos

Hola a todos !

la verdad es que sigo de hace tiempo el foro cada vez q tengo una duda, mi cuenta no la pude recordar por lo q tuve q hacerme otra xD

en fin, vamos a mi problema:

resulta que ando haciendo ejercicios matematicos en php.
en esta oportunidad, mi ejercicio se trata de encontrar un número que tenga mas de X divisores, la idea es que el valor de la X sea relativamente grande, por ejemplo 900 o 1000...

de momento pongo esta porción de código que tengo hecha:
a una variable le doy un numero, y luego por fuerza bruta voy contando sus divisiones exactas, asi puedo saber cuantos divisores tiene

Código:
        $i = 2;
	$rep = 1;
	while($i <= $numero){
		if( $numero % $i == 0){
			$rep++;
		}
		$i++;
	}
	echo $numero." tiene ".$rep." divisores.";
el drama como uds saben, cuando se trate de numeros grandes (como por ejemplo miles de miles de millones) esto tomará demasiado tiempo...

¿¿¿alguien sabe de algun algoritmo, o dónde puedo buscar y leer, o alguna técnica para hacer este tipo de procesos de manera más eficiente ???

eso por ahora

saludos a todos !
  #2 (permalink)  
Antiguo 09/09/2013, 08:02
Avatar de macmaikel  
Fecha de Ingreso: agosto-2013
Mensajes: 25
Antigüedad: 10 años, 7 meses
Puntos: 5
Respuesta: optimizar codigo / algoritmos

Para numeros es grandes lo mejor es usar la tecnica "divide y vencerás" que se aplica a la programación recursiva y es lo mas correcto, aunque depende del caso puede resultar complejo de implementar.

http://es.wikipedia.org/wiki/Algoritmo_divide_y_vencer%C3%A1s

Saludos

Etiquetas: algoritmos, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:55.