Numeros Perfectos • Explicado

Números perfectos en C# Código + Explicación en paralelo

El programa lee el número introducido por el usuario en un total de 5 intentos el número introducido ha de ser en un rango de (1 a 1000) el programa se encarga de decidir si el numero es perfecto si la suma de los divisores del número introducido es igual al número introducido y no perfecto en caso de que no se cumpla la condición

Código C#

int N = 5, i = 0, n = 0, d = 0, suma = 0, limite = 0;
try
{
    for (i = 1; i <= N; i = i + 1)
    {
        Console.Write("Número (1 - 1000): ");
        n = int.Parse(Console.ReadLine());

        if (n < 1 || n > 1000)
        {
            Console.WriteLine("Fuera de rango.");
        }
        else
        {
            suma = 0;
            limite = n / 2;
            for (d = 1; d <= limite; d = d + 1)
            {
                if (n % d == 0) suma = suma + d;
            }

            if (suma == n) Console.WriteLine($"{n} Perfecto");
            else Console.WriteLine($"{n} No perfecto");
        }
    }
}
catch
{
    Console.WriteLine("Entrada inválida");
}
finally
{
    Console.WriteLine("Pulsa una tecla para salir...");
    Console.ReadKey();
}
          

Sandbox: ejecuta la lógica aquí

El sandbox replica la lógica del código en JS para poder probarla sin salir de la página.

Notas