Delphi - Ayuda programa numeros perfectos

 
Vista:
Imágen de perfil de JeanKH

Ayuda programa numeros perfectos

Publicado por JeanKH (2 intervenciones) el 16/06/2016 23:31:05
Me asignaron realizar el siguiente programa:

Un número perfecto es aquel que es igual a la suma de todos sus divisores excepto el mismo. El primer número perfecto es seis (6) ya que 1+2+3=6. Escriba un programa que muestre todos los números perfectos menores que mil.

Pero no puedo utilizar el ciclo "for" solo "repeat o while" y he intentado plantearlo pero no consigo que me de los numero que me piden, quisiera que me pudieran ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda programa numeros perfectos

Publicado por E.T. (1244 intervenciones) el 17/06/2016 01:32:36
Un algoritmo básico en las clases de programación
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.Button1Click(Sender: TObject);
var i, j, k: integer;
    sPerfectos: string;
const
    cLimite = 1000;
begin
  i := 1;
  sPerfectos := '';
  repeat
    j := 0;
    k := 1;
    repeat
      if (i mod k = 0) and (i <> k) then
        j := j + k;
      inc(k);
    until k > trunc(i/2);
    if j = i then
      sPerfectos := sPerfectos + IntToStr(i) + ', ';
    inc(i);
  until i = cLimite + 1;
  ShowMessage(sPerfectos);
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar