Ver Mensaje Individual
  #7  
Antiguo 25-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Algunos comentarios respecto a tu código:
  • El ciclo interior

    Código Delphi [-]
    while (division <= numero) do

    puedes sustituirlo por

    Código Delphi [-]
    while (division*division <= numero) do

    con lo cual ahorras muchas vueltas.

  • En el momento en que encuentras un divisor:

    Código Delphi [-]
    confir := confir +1;

    ya no es necesario continuar el ciclo interior. Usa break para interrumpirlo.

  • Si vas a usar sentencias como

    Código Delphi [-]
    memo1.Lines.Add(inttostr(numero));

    durante el proceso, asegúrate de poner Memo1.Lines.BeginUpdate antes de comenzar y Memo1.Lines.EndUpdate al terminar. Esto porque, además del tiempo requerido por el algortimo en sí, pierdes bastante para actualizar un control visual.

  • Finalmente, no entiendo qué quieres hacer con el Timer. Toma en cuenta que conforme numero crezca, cada vuelta del ciclo tarda más, así que no puedes tener una estimación uniforme.

// Saludos
Responder Con Cita