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.

 

No hay comentarios: