• Viernes 20 de Enero de 2017, 15:03

Autor Tema:  Elaboración de programa.  (Leído 462 veces)

jeankh

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Elaboración de programa.
« en: Jueves 16 de Junio de 2016, 23:27 »
0

Publicidad 
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.

conyers

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re:Elaboración de programa.
« Respuesta #1 en: Viernes 24 de Junio de 2016, 19:15 »
0
Asi seria el programa en VFP:

clear
i=2   && i=variable que ira desde 2 hasta mil
Do while i<=1000
   x=1  && x iniciara desde 1 hasta i-1 para sumar los numeros divisores que estan entre 1 e "i"
   s=0  && Suma es igual a cero
   Do while x<i
      if int(i/x)=(i/x)  && Pregunto si el valor estero de la divicion es igual a la divisin natural
                     && Esto es para saber si no hay residuos en la division                     
         s=s+x         && Si es divisor sumo "x" a la suma "s"
      endif
      x=x+1
   Enddo
   if s=i         && Si la suma me da igual a "i", es perfecto
      ?i
      wait
   endif
   i=i+1
Enddo   



Saludos