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:
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:
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}
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
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:
Publicar un comentario