void Main()
{
Enumerable.Range(0, 1000)
.Where(k =>
k.Digitos().Where(n => n > 0)
.Select(d => Enumerable.Range(1, d).Aggregate((x, y) => x * y)).Sum() == k)
.Dump("Factoriones");
}
public static class ExtractorDigitos
{
// Método de extensión para extraer los digitos de un número>
public static IEnumerable<int> Digitos(this int numero)
{
List<char> caracteres = new List<char>() { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
List<int> digitos = new List<int>();
foreach (char caracter in numero.ToString())
{
digitos.Add(caracteres.IndexOf(caracter));
}
return digitos.AsEnumerable();
}
}