lunes, 21 de septiembre de 2020

Producto de cifras con incremento



El día 14 de mayo de 2020, @AnecdotesMaths publicó en Twitter la siguiente igualdad:

315 = (3+4)(1+4)(5+4)

En este blog estamos atentos a desarrollos a partir de cualquier curiosidad que encontremos, por lo que dedicaremos esta entrada a las igualdades del tipo

abc… = (a+k)(b+k)(c+k)…, donde a,b, c… son cifras de un número y k una constante entera.

El subrayado del primer miembro indica que son cifras del número y no producto.

Generalizamos a continuación la igualdad leída en Twitter.

El valor de k está acotado por el 10, ya que si aumentamos esta cantidad tendríamos:

(a+10)(b+10)(c+10)…>10*10*10*…> abc… ,

Sería imposible la igualdad pedida.

Para iniciar las búsquedas, necesitamos una función que nos devuelva las cifras de un número por separado. Puedes consultar los códigos para VBasic de Excel y Calc en la siguiente entrada de este blog


Allí se explican las funciones NUMCIFRAS (número de cifras), CIFRA, (una cifra sola) y TROZOCIFRA (devuelve varias cifras)

En PARI puedes usar:

cutdigit(a, p, q)=(a%10^q)\10^(p-1)

Es equivalente a TROZOCIFRAS, ya que devuelve las cifras entre los órdenes p y q, con lo que si son iguales equivalen a una sola cifra.

Para el total de cifras, PARI permite usar esta expresión:

#Vec(Str(N))

Equivale a “cardinal del vector formado por la expresión en texto de N”

Con estas funciones, no es difícil encontrar ejemplos como los deseados.


Versión para Excel y Calc

Hemos elegido la siguiente función para encontrar los números que poseen la propiedad deseada:

Function ciframasconst(n)
Dim i, j, k, p


k = 0  ‘Esta constante, si es mayor que 0, indicará éxito
For i = 0 To 9 ‘La variable i es la constante que se suma a las cifras
p = 1 ‘Inicio del producto de cifras
For j = 1 To numcifras(n)
p = p * (cifra(n, j) + i) ‘Se construye el producto de cifras aumentadas
Next j
If p = n Then k = i ‘Si el producto coincide con el número, tomamos nota de la constante sumada
Next i
ciframasconst = k ‘Si k>0, se da la propiedad
End Function


La función devuelve la constante que se suma a las cifras, de forma que si vale 0, es señal de que no se cumple la propiedad, y, en caso contrario, devuelve el valor de la constante que se suma. En la siguiente tabla figuran los primeros números que cumplen lo pedido y, junto a ellos, la constante que se suma:

12          2
18          1
24          2
35          2
50          5
56          2
90          6
120        4
210        5
315        4
450        5
780        5
840        6
1500      5

Vemos que, efectivamente, 315 cumple la igualdad para k=4, es decir, que 315=(3+4)(1+4)(5+4)

Otro ejemplo sería el 840, que la cumple para k=6:

840=(8+6)(4+6)(0+6)=14*10*6=840

Con esta función podemos extender la búsqueda hasta donde deseemos, recordando que solo ensayamos valores de k entre 0 y 10:

Los primeros números obtenidos son:

12, 18, 24, 35, 50, 56, 90, 120, 210, 315, 450, 780, 840, 1500, 3920, 4320, 4752, 7744, 16500,
24960,…

Están ya publicados en http://oeis.org/A055482

A055482                            There exists some k>0 such that n is the product of (k + digits of n).            
12, 18, 24, 35, 50, 56, 90, 120, 210, 315, 450, 780, 840, 1500, 3920, 4320, 4752, 7744, 16500, 24960, 57915, 59400, 60480, 91728, 269500, 493920, 917280, 1293600, 2419200, 3386880, 34992000, 266378112, 317447424, 1277337600, 3714984000, 14948388000, 48697248600, 460522782720, 896168448000

Versión en PARI

El algoritmo usado se traslada fácilmente al lenguaje PARI:

cutdigit(a, p, q)=(a%10^q)\10^(p-1)
prod_cifr_inc(n,k)=my(m=#Vec(Str(n)),p=1,i);for(i=1,m,p=p*(cutdigit(n,i,i)+k));p
for(i=1,10^6,for(k=1,9,if(i==prod_cifr_inc(i,k),print1(i,", "))))

Da los mismos resultados:







Primera variante

En lugar de producto de cifras incrementadas podemos usar la suma de sus cuadrados, es decir, que se cumpla la igualdad

 abc…=(a+k)^2+(b+k)^2+(c+k)^2

La acotación para k puede ser más amplia, por ejemplo, la raíz cuadrada del número N dividido entre el número de cifras. Así, 6754 podría alcanzar la cota 41 en la base de cada sumando:

6754>4*41^2=6724

El uso de valores de k de dos cifras complicaría una cuestión que solo es lúdica, por lo que seguiremos dándole valores entre 1 y 9. Dejamos abierta una ampliación de valores.

Un pequeño cambio en la función ciframascons nos devolvería los primeros números que cumplen esta condición:

20          2
40          2
106        3
114        4
118        2
121        5
146        3
158        2
171        4
230        7
274        5
325        7
413        9
469        6
481        8

Así, 325 coincide con la suma de los cuadrados de las cifras incrementadas estas en 7 unidades:

325=(3+7)^2+(2+7)^2+(5+7)^2=100+81+144

Con cubos

Si en lugar de cuadrados usamos cubos, obtenemos este otro listado:

141        1
251        1
440        2
532        2
560        1
1036      3
1307      3
1471      3
2240      6
2313      6
2609      3
2917      3
3016      6
3878      3
4799      3

Tomamos como ejemplo 3878, que con la constante igual a 3 cumple:

3878=(3+3)^3+(8+3)^3+(7+3)^3+(8+3)^3=216+1331+1000+1331

Dejamos como ampliación de quien nos lea la búsqueda de casos distintos. Por ejemplo, se podrían usar trozos de cifras en lugar de cifras aisladas.




No hay comentarios: