lunes, 25 de junio de 2018

Diferencias mínimas entre divisores


Si ordenamos en orden creciente (o decreciente) los divisores de un número compuesto, las diferencias entre dos consecutivos son siempre menores que las existentes entre dos más alejados, como es fácil de razonar, ya que todas las del segundo tipo son sumas de las consecutivas. La cuestión que nos planteamos es saber qué diferencia entre divisores es la mínima y cuántas veces se repite.

Luego particularizaremos a la diferencia 1, que daría lugar a divisores que son números consecutivos. Para la primera parte de este estudio no consideraremos el divisor 1, porque así obtendremos propiedades más interesantes.

Por ejemplo, si escribimos ordenados los divisores de 135 mayores que 1, obtendremos:

135 45 27 15 9 5 3

Vemos que la diferencia mínima entre los consecutivos es 2 (entre 3 y 5), y que es menor que todas las demás diferencias, sean o no entre consecutivos. Esta diferencia mínima se puede repetir en la sucesión de divisores. Tenemos, por ejemplo el caso del 540:

540 270 180 135 108 90 60 54 45 36 30 27 20 18 15 12 10 9 6 5 4 3 2

En él se repite cinco veces la diferencia mínima 1:

1=3-2=4-3=5-4=6-5=10-9

Es fácil ver que ocurre esto por ser múltiplo de un factorial.

Esta cuestión da lugar a varios cálculos distintos. Los vemos uno a uno.

Búsqueda de la diferencia mínima

La primera cuestión, dado un número concreto, es averiguar cuál es la diferencia mínima entre divisores.

La siguiente función en VBasic resuelve la cuestión utilizando tan sólo las funciones predefinidas de Excel o Calc. Recorre los divisores del número tomando nota de las diferencias entre consecutivos y almacenando la menor que se encuentre:

Public Function mindifdivi(n)
Dim i, p, p1, a1, a2, es

p = n - 1: p1 = p: a1 = 1: a2 = n: es = 0 ‘Variables iniciales
For i = 2 To n / 2 ‘Recorre desde 2 hasta la mitad del número
If n / i = n \ i Then  ‘Comprueba si es divisor
a1 = i: es = 1 ‘Guarda memoria del divisor
p1 = Abs(a2 - a1) ‘Calcula la diferencia con el divisor anterior
If p1 < p Then p = p1 ‘Si es más pequeña que la almacenada, la sustituye
a2 = a1
End If
Next i
If es = 0 Then mindifdivi = 0 Else mindifdivi = p ‘Si no es primo, devuelve la diferencia mínima
End function

Como la gran mayoría de números es múltiplo de los primeros primos, 2, 3, 5 o 7, abundan los resultados 0 (los primos), 1 y 2, como podemos ver en los valores de 1 a 20:



Las mayores diferencias suelen presentarse en los números semiprimos, como el 14, o potencias de primos, que sería el caso del 9. Es lógico que sea así. Por ejemplo el año 2018 es semiprimo con los factores muy alejados (2018=2*1009), por lo que su mínima diferencia es 1007.

Las mínimas diferencias se dan entre los múltiplos de 2 y 3 o de 3 y 5 (o 5 y 7, por ejemplo), que tienen el valor de 1 o 2. Esto puede ser engañoso. Las diferencias entre factores primos pueden no ser las mínimas. En el caso de 2450 sus factores son  7, 5 y 2, lo que haría esperar una diferencia mínima de 2, pero en realidad es 1, diferencia entre 49 y 50, consecutivos en la lista de divisores:

2450 1225 490 350 245 175 98 70 50 49 35 25 14 10 7 5 2 1

¿Cuántas veces se repite una diferencia mínima?

Una vez que hemos encontrado la diferencia mínima, con una función similar a la anterior podemos contar las veces en las que aparece. Recordamos de nuevo que se excluye el divisor 1.

Su código puede ser el siguiente:

Public Function nummindifdivi(n)
Dim i, p, p1, aa, a1

p = mindifdivi(n): p1 = 0 ‘Se calcula la diferencia mínima p y se pone el contador p1 a cero.
If p = 0 Then nummindifdivi = 0: Exit Function ‘Caso en el que n sea primo
For i = 2 To n / 2 ‘Recorremos los divisores propios
aa = n / i
If aa = Int(aa) Then ‘Si es un divisor, seguimos
a1 = aa + p ‘Incrementamos el divisor en la diferencia mínima
If n / a1 = Int(n / a1) Then p1 = p1 + 1 ‘Si resulta otro divisor, incrementamos el contador
End If
Next i
nummindifdivi = p1 ‘El resultado es el contador
End Function

A continuación reproducimos la tabla anterior adjuntando una columna con el número de ocurrencias de la diferencia mínima y la lista de divisores propios:



Así vemos, por ejemplo, que la diferencia mínima en el 12 es 1, y que se presenta dos veces, entre el 2 y el 3 y entre el 3 y el 4. En el caso del 14, la mínima es 5, y sólo aparece una vez, entre 2 y 7.

Con esta función podemos determinar los números con mayor número de ocurrencias de la diferencia mínima.

Ejemplos:

Números con más de cuatro diferencias mínimas

Los primeros son



Vemos que, por ejemplo, 420 presenta 7 diferencias mínimas iguales a 1:
2-3, 3-4, 4-5, 5-6, 6-7, 14-15 y 20-21.

Números con diferencia 2 y varias repeticiones

Los números 3465 y 4095 son los primeros que presentan cinco diferencias mínimas con valor 2. La razón es que todos sus factores primos son impares y esto facilita la repetición del 2. Así, 3465=3*3*5*7*11, y presenta diferencia 2 en
3-5, 5-7, 7-9, 9-11, 33-35

Las primeras diferencias son previsibles, restando los factores primos, pero otras es difícil encontrarlas por razonamiento, como 33-35.

Caso en el que diferencia mínima es 1 (consecutivos)

Este caso es el más interesante, por lo que merece una función especial para él. Aquí sí vamos a incluir el divisor 1, por la siguiente razón:

El número de pares de divisores consecutivos coincide con el de divisores oblongos, del tipo n(n+1). Es claro que todo número divisible por n y n+1 también lo es entre n(n+1), e igual ocurre a la inversa. Si no tenemos en cuenta el 1, perderíamos el oblongo 1*2=2.

Otro detalle que nos facilita la búsqueda es que los oblongos comienzan en 2 y luego sus diferencias van siendo 4, 6, 8, 12,…los pares consecutivos, lo que facilita el recorrido entre oblongos.

Según estas consideraciones, se puede diseñar la siguiente función numconsec que cuente los divisores consecutivos.

Public Function numconsec(n)
Dim i, m, p

m = 0: i = 2: p = 2 ‘Inicios de números oblongos
While i <= n
If n / i = n \ i Then m = m + 1 ‘Si es un divisor oblongo, se incrementa el contador
p = p + 2: i = i + p ‘Se genera el siguiente oblongo
Wend
numconsec = m
End Function


En http://oeis.org/A088723 están publicados los números que al menos poseen dos divisores consecutivos (sin contar el 1):

6, 12, 18, 20, 24, 30, 36, 40, 42, 48, 54, 56, 60, 66, 72, 78, 80, 84, 90, 96, 100, 102, 108, 110, 112, 114, 120, 126, 132, 138, 140, 144, 150, 156, 160, 162, 168, 174, 180, 182, 186, 192, 198, 200, 204, 210, 216, 220, 222, 224, 228, 234, 240, 246, 252, 258, 260…

Tomamos uno de ellos, por ejemplo el 222. Le buscamos todos los divisores y resultan ser:

222 111 74 37 6 3 2 1, con consecutivos 2-3

Con nuestra función resultarían dos, ya que contamos 1-2 y 2-3, para que así coincida con oblongos, que en este caso serían 2 y 6.

Es claro que todos los múltiplos de 6 pertenecen al listado, pero hay otros, como el 110, no múltiplo de 6 pero es oblongo y sus divisores consecutivos son 10 y 11.

Estos son los que presentan más de dos pares de consecutivos:

12, 24, 30, 36, 42, 48, 60, 72, 84, 90, 96, 105, 108, 120, 126, 130, 132, 144,…

Casi todos son múltiplos de 6 o incluso de 12.

Con más de tres consecutivos aparecen:

60, 72, 84, 90, 120, 132, 144, 156, 168, 180, 210, 216, 240,…

Es fácil ver que al aumentar el número de consecutivos iremos obteniendo entre ellos múltiplos de 60, pues nos garantizamos los consecutivos 1, 2, 3, 4,  5 y 6. Un caso especial vemos que es el 132=2*2*3*11, cuyos consecutivos son 1-2, 2-3, 3-4 y 11-12.

Al llegar aquí podemos pensar en los factoriales, que tienen garantizados n-1 consecutivos. Veamos si aparecen muchos más pares:



Hasta el 4 resultan los previstos. Después van apareciendo más casos, como en el 6!, que podemos recorrer 8: 1-2, 2-3, 3-4, 4-5, 5-6, 8-9, 9-10 y 15-16.

Números “record”

En el párrafo anterior podíamos sospechar que el incremento del número de pares de divisores consecutivos no seguía una sucesión creciente. Hemos programado la búsqueda de los números en los que el número de pares se incrementa en una unidad, y hemos obtenido estos:




Vemos que el orden natural se rompe entre 72 y 60, ya que este segundo presenta más pares que el 72. Como era de esperar, no figuran apenas factoriales, que serían los mejores candidatos para poseer más pares de números consecutivos.

El resto de soluciones, salvo el ya conocido desfase en la primera,  lo tienes en http://oeis.org/A088726

A088726: Smallest numbers having exactly n divisors d>1 such that also d+1 is a divisor.

1, 6, 12, 72, 60, 180, 360, 420, 840, 1260, 3780, 2520, 5040, 13860, 36960, 41580, 27720, 55440, 83160, 166320, 277200, 491400, 471240, 360360, 1113840, 720720, 1081080, 3341520, 2162160, 2827440, 5405400, 4324320, 12972960, 6126120,…

Se vuelve a romper el orden en otros casos, como 3780 y 2520.

No hay comentarios: