Ver Mensaje Individual
  #14  
Antiguo 26-08-2010
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Reputación: 25
egostar Va camino a la fama
Cita:
Empezado por Abaco Ver Mensaje
Graciaaaaas, ahora no da error, peeeeeeero...
Deberia devolver true con 6...
Mira asi hago en vb:

Código:
Private Sub Form_Load()
    MsgBox IsPerfectNumber(6)
End Sub

Public Function IsPerfectNumber(ByVal lNumber As Long) As Boolean
Dim x                       As Long
Dim i                       As Long
    For x = 1 To lNumber - 1
        If (lNumber Mod x = 0) Then i = i + x
    Next
    If i = lNumber Then IsPerfectNumber = True
End Function
Me podrias ayudar un pco mas?
Muchas gracias
Hola

Código Delphi [-]

function IsPerfectNumber(lNumber:Integer):Boolean;
var
  i : Integer;
  x : Integer;
begin
//Inicializamos I en 0
  I := 0;
//Inicializamos el resultado de la función para evitar el aviso de no definida
  Result := false;
  if lnumber > 0 then
    begin
      for x := 1 to lnumber - 1 do //Te faltó restarle 1 a lnumber
        begin
          if (lnumber mod x) = 0 then
             i := i + x;
        end;
      if i = lnumber then
       Result := true; //Cambia el nombre de la función por la palabra reservada Result
    end;
end;

saludos
Responder Con Cita