Pages

miércoles, 26 de diciembre de 2012

Determinar si dos números son amigos - Diagrama de Flujo

Problema
Implementar un algoritmo que determine si dos números son amigos.


Solución
Ingresamos dos números a los cuales les extraeremos sus divisores para luego determinar si estos números son amigos.

Ejemplo
  • Entrada: 220  y 284
             Suma de Divisores 220:   1+2+4+5+10+11+20+22+44+55+110 = 284
             Suma de Divisores 284:   1+2+4+71+142 = 220
             Son amigos por que la suma de los divisores de un número es igual al otro número.
  • Salida: Son números amigos
Inicializamos la variables “sum1” y “sum2” en 1, luego se crea un “símbolo de entrada” para capturar los valores ingresados en las variables “n1” y “n2”.
Llamamos a la subrutina SumarDivisores con  parámetros n1, sum1 , volvemos a llamar a la subrutina SumarDivisores con los parámetros n2, sum2.
Creamos una condicional que verificara si (sum1 = n2) AND (sum2 = n1)
    Si es Verdadero (Si)
        Mostrará que los números son amigos
    Si es falso (No)
        Mostrará que los números no son amigos


En la subrutina SumarDivisores, crearemos un bucle de tipo For el cual tendrá como índice de recorrido inicializado en 2 y terminara el bucle cuando llegue a la mitad del número (porque solo se consideran los divisores propios), se iterara la variable i se incrementa en 1 en cada ciclo.

Verificamos si (n MOD i) = 0 esto es para verificar si el número es múltiplo
    Si es Falso (No)
        Continuamos con el ciclo
    Si es Verdadero (Si)
        Actualizamos el valor de Sum1 con i + sum1
        Continuamos con el ciclo
Terminamos el ciclo For


 Diagrama Fuente DFD

Código fuente en Java

Código fuente en C++

Código fuente en C

Código fuente en C#

Código fuente en Python
Código fuente en Visual Basic

0 comentarios:

Publicar un comentario