Un número suma-producto en una base numérica dada es un número natural que es igual al producto de la suma de sus dígitos por el producto de sus dígitos.
Hay un número finito de números suma-producto en cualquier base dada . En base 10 , hay exactamente cuatro números suma-producto (secuencia A038369 en la OEIS ): 0, 1, 135 y 144. [1]
Sea un número natural. Definimos la función suma-producto para la base , como sigue:
¿Dónde está el número de dígitos del número en base , y
es el valor de cada dígito del número. Un número natural es un número suma-producto si es un punto fijo para , lo que ocurre si . Los números naturales 0 y 1 son números suma-producto triviales para todos los , y todos los demás números suma-producto son números suma-producto no triviales .
Por ejemplo, el número 144 en base 10 es un número suma-producto, porque , , y .
Un número natural es un número suma-producto sociable si es un punto periódico para , donde para un entero positivo , y forma un ciclo de período . Un número suma-producto es un número suma-producto sociable con , y un número suma-producto amistoso es un número suma-producto sociable con
Todos los números naturales son puntos preperiódicos para , independientemente de la base. Esto se debe a que para cualquier recuento de dígitos dado , el valor mínimo posible de es y el valor máximo posible de es La suma máxima posible de dígitos es por lo tanto y el producto máximo posible de dígitos es Por lo tanto, el valor de la función suma-producto es Esto sugiere que o dividiendo ambos lados por , Ya que esto significa que habrá un valor máximo donde debido a la naturaleza exponencial de y la linealidad de Más allá de este valor , siempre. Por lo tanto, hay un número finito de números suma-producto , y se garantiza que cualquier número natural alcanzará un punto periódico o un punto fijo menor que lo que lo convierte en un punto preperiódico.
El número de iteraciones necesarias para alcanzar un punto fijo es la persistencia de la función suma-producto de , y no está definido si nunca alcanza un punto fijo.
Cualquier número entero que se demuestre como un número suma-producto en una base dada debe, por definición, ser también un número de Harshad en esa base.
Todos los números están representados en base .
Los números suma-producto se pueden extender a los números enteros negativos mediante el uso de una representación de dígitos con signo para representar cada número entero.
El siguiente ejemplo implementa la función suma-producto descrita en la definición anterior para buscar números y ciclos suma-producto en Python .
def suma_producto ( x : int , b : int ) -> int : """Número de suma-producto.""" suma_x = 0 producto = 1 while x > 0 : if x % b > 0 : suma_x = suma_x + x % b producto = producto * ( x % b ) x = x // b return suma_x * producto def suma_producto_ciclo ( x : int , b : int ) - > lista [ int ]: visto = [] mientras x no esté en visto : visto.append ( x ) x = suma_producto ( x , b ) ciclo = [ ] mientras x no esté en ciclo : ciclo.append ( x ) x = suma_producto ( x , b ) return ciclo