El bucle for en C# es fundamantal para iterar sobre secuencias conocidas. A continuación, se presentan dos casos prácticos: la verificación de números perfectos y la búsqueda de números narcisistas.
Números Perfectos
Un número perfecto es aquel donde la suma de sus divisores propios (excluyendo al número mismo) es igual al propio número. Por ejemplo, el 6 tiene divisores 1, 2 y 3, y 1 + 2 + 3 = 6, por lo que es perfecto.
El siguiente código solicita un número natural, calcula la suma de sus divisores utilizando un bucle for y determina si es perfecto.
using System;
class Programa
{
static void Main()
{
// Declarar variables
int numEntrada;
int sumaDivisores = 0;
// Solicitar número
Console.Write("Introduzca un número natural: ");
numEntrada = int.Parse(Console.ReadLine());
// Encontrar divisores y acumular suma
for (int divisor = 1; divisor < numEntrada; divisor++)
{
if (numEntrada % divisor == 0)
sumaDivisores += divisor;
}
// Mostrar resultado
if (sumaDivisores == numEntrada)
Console.WriteLine($"{numEntrada} es un número perfecto.");
else
Console.WriteLine($"{numEntrada} no es un número perfecto.");
}
}
Al compilar y ejecutar, si se ingresa 6, se confirma como perfecto; con 7, no lo es.
Números Narcisistas
Los números narcisistas de tres dígitos son aquellos donde la suma de los cubos de sus dígitos individuales igualla al propio número. Se buscan en el rango de 100 a 999.
El código utiliza un bucle for para iterar sobre cada número, separa sus dígitos y veriifca la condición.
using System;
class Programa
{
static void Main()
{
Console.WriteLine("Números narcisistas entre 100 y 999:");
for (int num = 100; num <= 999; num++)
{
// Extraer dígitos
int digitoUnidades = num % 10;
int digitoDecenas = (num / 10) % 10;
int digitoCentenas = num / 100;
// Calcular suma de cubos
int sumaCubos = (int)Math.Pow(digitoUnidades, 3) +
(int)Math.Pow(digitoDecenas, 3) +
(int)Math.Pow(digitoCentenas, 3);
// Verificar si es narcisista
if (num == sumaCubos)
{
Console.WriteLine(num);
}
}
}
}
Al ejecutar, se imprimen los números 153, 370, 371 y 407.