lunes, 22 de septiembre de 2025

Simétricos de un esfénico

En esta entrada estudiaremos la relación entre los factores primos de un número esfénico y los de su simétrico, el que posee cifras simétricas a las de ese número en el sistema de numeración decimal.

Números esfénicos

Los números esfénicos son los que poseen tres factores primos distintos, como se explica en este mismo blog.

(Ver https://hojaynumeros.blogspot.com/2022/09/blog-post.html)

En muchos lenguajes de programación se define la función OMEGA como el total de factores primos distintos que posee un número, y BIGOMEGA, al mismo total si se cuentan los primos repetidos. Esto nos da un criterio para conocer si un número N es esfénico, y es que OMEGA(N)=3 y BIGOMEGA(N)=3. Así se “prohíbe” que se repitan primos. Lo expresamos en lenguaje PARI:

print(omega(42)==3&&bigomega(42)==3)

En el caso del 42=2*3*7, no se cumple la propiedad que buscamos en el simétrico, porque 24=2*2*2*3. Sin embargo, 165=3*5*11 daría lugar a 561=3*11*17, con lo que el simétrico es también esfénico.

Aquí ya se ha usado la función ESFENICO, que detecta si un número es de esta clase:

Public Function esfenico(n) As Boolean

Dim a, b, c, d, m

 

m = 0

a = 2

While a <= n / 2 And m = 0

If esprimo(a) And n Mod a = 0 Then

b = n / a

If Not esprimo(b) Then

c = a + 1

While c <> a And c <= b / 2 And m = 0

If esprimo(c) And b Mod c = 0 Then

d = b / c

If esprimo(d) And d <> c And d <> a And a <> c Then m = 1

End If

c = c + 1

Wend

End If

End If

a = a + 1

Wend

 

If m = 1 Then esfenico = True Else esfenico = False

End Function

Con esta función podemos detectar qué números siguen siendo esfénicos al invertir sus cifras. No consideraremos los capicúas. Basta usar la condición

ESFENICO(N) AND ESFENICO(CIFRAINVER(N)) AND NOT ESCAPICUA(N)

Con ella descubrimos los esfénicos cuyo simétrico también lo es. Los recogemos en esta tabla:

Tabla

El contenido generado por IA puede ser incorrecto.

En los corchetes, el 1 es el exponente del primo correspondiente.

Están publicados en https://oeis.org/A270175

En esa sucesión les llaman Cinehps numbers, buscando la palabra simétrica a la de sphenic. En español podrían llamarse ocinefse, pero es una palabra poco atractiva, por lo que no la usaré.

Dentro de esta sucesión podríamos extraer ejemplos múltiplos de un semiprimo determinado, como sería el 15. Observaremos que no son escasos:

Tabla

El contenido generado por IA puede ser incorrecto.

Esta tabla nos sugiere que cada semiprimo posee una lista de primos, aquí 11, 19, 29, …, que le hacen poseer la propiedad que estamos tratando. Parece que todos los semiprimos la poseerán, pero dejamos esta posibilidad para quien desee estudiarla.

En los comentarios a esa sucesión se hace notar que un múltiplo de 10 sólo pertenecería a ella si el primo N/10 es simétrico de un esfénico. Esto nos abre una puerta a otros casos.


Primos simétricos de esfénicos

Podemos cambiar la exigencia de que el número sea esfénico por el de que sea primo. Sería un pequeño cambio fácil de realizar, y seguiríamos sin contar con los capicúas. El resultado sería:

Tabla

El contenido generado por IA puede ser incorrecto.

Están publicados en https://oeis.org/A271799

Por ejemplo, si 269 lo multiplicamos por 10, lo convertiremos en esfénico, y su simétrico, 0962=962, también lo sería.

Ya puestos a buscar casos, podríamos emparejar semiprimos con esfénicos.

 

Semiprimos simétricos de esfénicos

Como ejemplo de las búsquedas que se pueden desarrollar buscamos los números semiprimos que se convierten en esfénicos al invertir sus cifras. Un sencillo cambio de definición los consigue. El resultado es

Tabla

El contenido generado por IA puede ser incorrecto.

No parecen estar publicadas las dos sucesiones.

martes, 9 de septiembre de 2025

Antidivisores

Todo número entero positivo N (he excluido los negativos porque no tienen interés en este estudio) posee divisores. Si es primo, serán el 1 y él mismo, y, en otro caso, presentará todo un conjunto de divisores (ver mi entrada de blog

https://hojaynumeros.blogspot.com/2011/11/el-conjunto-de-los-divisores.html).

Siempre existirán números enteros positivos menores que N que no sean divisores de él (salvo el caso de 2). A estos números les llamamos no divisores de N, como sería, por ejemplo, N-1.

Podemos considerar un divisor de N como un número K tal que al conjunto K, 2K, 3K, 4K, ... pertenece N. Esto parece trivial, pero si aplicamos la idea a un no divisor, esa sucesión sobrepasará N, y alguno de los múltiplos de K será el más cercano a N. Unos quedarán muy “cerca” de N, como, por ejemplo, si N=21, su no divisor 5, acercará un múltiplo a una unidad de él, ya que 21=4*5+1.

Un antidivisor K de N se define como el no divisor que se “acerca” a N dejando intervalos iguales entre N y dos múltiplos consecutivos de K. Por ejemplo, 10 es un antidivisor de 55, porque no es divisor de él, pero 55 equidista de dos de sus múltiplos: 50<55<60, con 55-50=60-55. Una ligera reflexión nos indica que si K es impar, no es posible la equidistancia, y se permite una diferencia de 1.

La aproximación intuitiva anterior se puede concretar en la siguiente definición, que se aplica de forma distinta si K es par o si es impar:

Si K es par y no divisor de N, será antidivisor si N MOD K=K/2

Si K es impar, diremos que es antidivisor de N si N MOD K=(K±1)/2

Por esta simetría en los dos intervalos, también se llama no divisores insesgados a los antidivisores.

Unos ejemplos: 14 es antidivisor de 147, porque los múltiplos de 14 140 y 154 rodean a 147 con 7 unidades a cada lado: 147-14*10=14*11-147. Más directo, 147 MOD 14=14/2

El número impar 7 es antidivisor de 25, porque lo rodea con un intervalo de 3 y otro de 4: 25-7*3=4 y 7*4-25=3. También; 25 MOD 7 = INT(7+1).


Los antidivisores como divisores

Las ideas anteriores se pueden expresar mediante otras expresiones.

En el caso par podemos considerar que N=K(m+1/2), siendo m un número natural apropiado. Multiplicando por 2, obtenemos: 2N=K(2m+1), lo que nos lleva a que K no es divisor de N pero sí de su doble. En el ejemplo de 10 como antidivisor de 55 obtendríamos que 2*55=10*11, con lo que 10 divide a 2*55

En el caso impar, N=Km+(K+1)/2 o bien N=Km+(K-1)/2, lo que nos lleva a que 2N-1=K(2m+1) o bien 2N+1=K(2m+1). Por ejemplo, en el caso de 7 como antidivisor de 25, quedaría 2*25-1=7*7, lo que confirma a 7 como divisor de 2*25-1. Si tomáramos 17 como antidivisor de 25 (ya que 25 está comprendido entre 17*1 y 17*2=34 con las diferencias 25-17=8 y 34-25=9), este sería divisor de 2*25+1=51=17*3.

Los párrafos anteriores nos permiten definir los antidivisores de otra forma:

Un número K es antidivisor de N cuando no es divisor del mismo, pero sí lo es de 2N o 2N+1 o 2N-1.

Es otra de definición sin acudir a la Aritmética Modular.

Vemos un ejemplo: más adelante sabremos que los antidivisores de 13 son 2, 3, 5 y 9. Es fácil encontrarlos, pues recorremos los no divisores de 13 y nos quedamos con los que dividen a 26, o 27 o 25: 2 divide a 26, 3 divide a 27, 5 a 25 y 9 a 27. Hemos desechado el 4, porque no divide a ninguno de los tres, y también al 6, al 7 y a todos los que faltan.


Un sencillo criterio

Según lo anterior, bastará comprobar que K no divide a N, pero sí a uno de los tres siguientes, 2N, 2N+1 o 2N-1.

Con este criterio es fácil encontrar los antidivisores de un número.

Si usamos la función MOD, para encontrar restos, el criterio se puede expresar así:

 n Mod k <> 0 And ((2 * n) Mod k = 0 Or (2 * n + 1) Mod k = 0 Or (2 * n - 1) Mod k = 0)

Si se desea integrarlo en una celda de hoja de cálculo, bastará usar la función RESIDUO.

Este criterio permite encontrar todos los antidivisores de un número mediante esta función tipo string:

Function antidivisores$(n)

Dim i, m

Dim s$

 

s$ = " "’ Contenedor de antidivisores

m = 0 ‘Contador

For i = 2 To n – 1 ‘Rango de antidivisores

If n Mod i <> 0 And ((2 * n) Mod i = 0 Or (2 * n + 1) Mod i = 0 Or (2 * n - 1) Mod i = 0) Then ‘Criterio

m = m + 1

s = s + Str$(i) ‘Un nuevo antidivisor

End If

Next i

s = ajusta(m) + ": " + s ‘Se añade contador

antidivisores = s

End Function

 

Podemos aplicar esta función a cualquier número entero positivo, y el primer número será el contador. Por ejemplo, aplicado al 63 nos devuelve

 

ANTIDIVISORES(63)= 7:   2 5 6 14 18 25 42


Indica que posee siete antidivisores y añade su listado. Puedes comprobarlo en OEIS, con la búsqueda “anti-divisors”.

 

Con esta herramienta podemos buscar números con un número determinado de antidivisores. Bastará leer los primeros dígitos. Vemos unos ejemplos:

 

Con un antidivisor:

TablaEl contenido generado por IA puede ser incorrecto.

Resultan muy escasos, porque siempre se esperan más antidivisores. Puedes consultar https://oeis.org/A066466 para más detalles sobre estos números. El siguiente es 393216. Se les puede llamar antiprimos.

 

Con dos

 

Tampoco son frecuentes. Los primeros son:

 

TablaEl contenido generado por IA puede ser incorrecto.

Puedes consultar https://oeis.org/A066467


 

El mayor antidivior

 

Ya sabemos que el antidivisor no debe ser divisor de N, pero sí de uno de los tres 2N, 2N+1 o 2N+2. Para que D sea el mayor antidivisor, el cociente respecto a uno de los tres deberá ser pequeño. El mejor candidato es el 3. Así, si D divide a 2N, su valor máximo será 2N/3. Si no divide a 2N, lo hará a 2N+1 o 2N+2, con lo que podemos afirmar que

 

El mayor antidivisor de un número N se situará en las cercanías de 2N/3.

 

Si modificamos la función ANTIDIVISORES, es sencillo encontrar el mayor antidivisor de un número. Podría ser esta:

 

Function max_antidivisor(n)

Dim i, m

 

m = 1

For i = 2 To n - 1

If n Mod i <> 0 And ((2 * n) Mod i = 0 Or (2 * n + 1) Mod i = 0 Or (2 * n - 1) Mod i = 0) Then m = i

Next i

max_antidivisor = m

End Function

 

Se puede comprobar formando una tabla de cocientes D/N. En la siguiente tabla se ha recorrido un rango de número elegido al azar:

 

 

Todos los cocientes son cercanos a 2N/3.


 

¿De qué números soy antidivisor?

 

Podemos plantearnos una búsqueda inversa, y es que dado un número entero positivo K, es posible construir una lista de los números de los que es antidivisor. La solución es trivial:


Si K es par, será antidivisor de aquellos números N que cumplan N=K(m+1/2), y si es impar, de los que cumplan, N=Km+(K+1)/2 o bien N=Km+(K-1)/2. Esto tiene dos consecuencias sencillas:

 

El conjunto de números con el mismo antidivisor K será una progresión aritmética si K es par, y contendrá elementos consecutivos si es impar. En ambos casos será un conjunto infinito.

 

Por ejemplo:

Para K=8, el conjunto será {12, 20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124, 132, 140, 148, 156, …}

 

Para K=7, tendremos {10, 11, 17, 18, 24, 25, 31, 32, 38, 39, 45, 46, 52, 53, 59, 60, 66, 67, 73, 74, 80, 81, 87, 88, 94, 95, 101, 102}


 Funciones sobre el conjunto de antidivisores

Al igual que con divisores, se pueden definir sumas y cuentas sobre el conjunto de antidivisores, que serían A_SIGMA, A_TAU, A_SIGMA2, …

Por ejemplo, la suma de antidivisores se podría programar así:

Function a_sigma(n)

Dim i, m

 

 

m = 0 'sumador

For i = 2 To n - 1 'Rango de antidivisores

If n Mod i <> 0 And ((2 * n) Mod i = 0 Or (2 * n + 1) Mod i = 0 Or (2 * n - 1) Mod i = 0) Then m = m + i

Next i

a_sigma = m

End Function

 Así, a_sigma(63)=112

A partir de esa función se pueden definir números antiperfectos, como son 5, 8, 41, 56, 946.

De igual forma se definiría a_tau y otras.

 

martes, 10 de junio de 2025

Regresos 15 - Generaciones con cifras y potencias

En una entrada antigua de este blog se invitaba a buscar igualdades similares a la siguiente:

882+332=8833

En aquella ocasión se dio más protagonismo a seguidores del blog, pero los tiempos han cambiado y ahora es preferible ampliar el tema algorítmicamente, ya que existen menos interacciones en el mismo que entonces.

Por otra parte, puede ser una buena ocasión para ampliar las búsquedas de este tipo de casualidades. En la entrada antigua sugeríamos la existencia de otra solución de cuatro cifras, pero pedíamos buscarla con más. También, por otra parte, a partir del año 2025 nos interesan las igualdades del tipo (20+25)2=2025. Unificaremos ambas cuestiones.

Usaremos una función que admita como parámetros el número a buscar, los exponentes a los que se elevan los trozos y el tipo de descomposición, si es a^k+b^k o bien (a+b)^k.

Función de búsqueda

En el listado que sigue usamos la función AJUSTA en lugar de STR$ para eliminar el espacio en blanco que Excel puede añadir a las cadenas.

A la primera versión de la función la denominaremos CIFRAS_POTE2, para indicar que el número se descompone en dos trozos. Ya se verá en qué direcciones se puede generalizar.

Function cifras_pote2(n, tope, tipo)
'El tope es el maximo exponente - El tipo es si se toma a^k+b^k+...o bien (a+b+c...)^k

Dim i, k, a, b, t
Dim s$, v$

s = ""
v = ajusta(n) ‘Convertimos n en texto
t = Len(v$) ‘Número de cifras
For i = 1 To t – 1 ‘Punto de corte
a = Val(Left(v, i)) ‘Los dos trozos
b = Val(Right(v, t - i))
For k = 2 To tope ‘Distintos exponentes
If tipo = 1 Then ‘Tipo 1: a^k+b^k
If potencia(a, k) + potencia(b, k) = n Then s = s + "## " + ajusta(a) + "^" + ajusta(k) + "+" + ajusta(b) + "^" + ajusta(k)
Else ‘Tipo 2: (a+b)^k
End If
Next k
Next i
cifras_pote2 = s
End Function

Si usamos esta función con tope 2 y tipo 1 obtendremos la solución conocida y otra más de cuatro cifras: 

Tabla

El contenido generado por IA puede ser incorrecto.

Si usamos el tipo 2, obtenemos otras expresiones, una de ellas la popular del 2025:

Texto, Tabla

El contenido generado por IA puede ser incorrecto.

Con tres cifras se obtienen

Interfaz de usuario gráfica

El contenido generado por IA puede ser incorrecto.

Con el segundo tipo sólo existe (10+0)^2=100

Con cinco cifras sólo se encuentran ejemplos triviales en el tipo 1:

En el tipo 2 sí aparece este ejemplo: 88209=(88+209)^2

Por completar, hay que destacar que el único ejemplo de dos cifras es del tipo 2: (8+1)^2=81

Con cubos, además de las trivialidades, es interesante el ejemplo 407=4^3+0^3+7^3

No parece que el tema dé más de sí. Teniendo la herramienta, con un poco de paciencia se pueden explorar otros números de cifras y exponentes.

Descomposición en todas las cifras

Es interesante también la búsqueda de las igualdades entre un número y potencias de todas sus cifras, como la ya conocida 407=4^3+0^3+7^3.

Para encontrar estos casos cambiaremos un poco la estructura de la función. Ahora basta con que devuelva el valor del número, pues la descomposición será siempre la misma. Se propone esta función:

Function cifras_pote(n, exponente, tipo)
‘El tipo es idéntico al de la versión anterior

Dim i, a, b, t, c
Dim s$, v$
s = "" ‘Soluciones
v = ajusta(n) ‘El número como texto
t = Len(v$)
b = 0
For i = 1 To t
a = Val(Mid$(v, i, 1)) ‘Se recorren las cifras
‘Solución según el tipo (suma de potencias o potencia de la suma)
If tipo = 1 Then b = b + potencia(a, exponente) Else b = b + a
Next i
c = 0
If tipo = 1 And b = n Or tipo = 2 And potencia(b, exponente) = n Then c = n
cifras_pote = c ‘Devuelve el número o cero si no hay solución
End Function

Con esta función se descubren más ejemplos interesantes. Vemos  algunos:

Texto

El contenido generado por IA puede ser incorrecto.

Y he seguido jugando con el tema:

54748=5^5+4^5+7^5+4^5+8^5

92727=9^5+2^5+7^5+2^5+7^5

93084=9^5+3^5+0^5+8^5+4^5

17576=(1+7+5+7+6)^3

19683=(1+9+6+8+3)^3