domingo, 25 de febrero de 2018

Programación Funcional en LINQ No. 2-18.2: Teoría de Números - Generar Números de Dudeney

1. Problema

Generar números de Dudeney usando programación funcional.

2. Solución

El cubo perfecto de un número entero positivo se conoce como número de Dudeney: consiste en sumar cada uno de los dígitos y luego elevarlo al cubo; el resultado será el número original (Mukherjee, 2014).


Por ejemplo:

Número de Dudeney

3. Código C#


El método de extensión Digitos() (líneas 12-24) permite descomponer un número en sus dígitos.


En el bloque de código del método Main() (líneas 1-6) se lleva a cabo las siguientes operaciones:
  1. Línea 3: a través de la función generadora Range() se crea una secuencia de números entre 0 y 1000.
  2. Línea 4: Se aplica la función filtro Where() para obtener sólo los números que cumplan con el predicado que define un número de Dudeney representando por e:
    1. La suma de los dígitos de e al cubo es igual al número e; en otras palabras:

      Math.pow(e.Digitos().Sum(), 3) == e
Prueba de ejecución:
Números de Dudeney entre 0 y 1000
Figura 1. Números de Dudeney entre 0 y 1000.

4. Literatura & Enlaces

Mukherjee, S (2014). Thinking in LINQ Harnessing the Power of Functional Programming in .NET Applications. United States: Apress.

O

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.