En mis exploraciones por la página OEIS me he encontrado con una sucesión de primos en la que a cada término le sigue el menor primo cuya diferencia con el anterior es un cuadrado (https://oeis.org/A073609). He pensado en ampliar el tema a diferencias de otro tipo, no cuadrados, para descubrir algunas posibles propiedades.
La sucesión es claramente
dependiente de su inicio, que en este caso es el 2, pero para cualquier primo
con que iniciemos, producirá un siguiente primo único, diferente a estos o
coincidente. Los términos publicados son los siguientes, con inicio en 2:
2,
3, 7, 11, 47, 83, 227, 263, 587, 911, 947, 983, 1019, 1163, 1307, 1451, 1487,
1523, 1559, 2459, 3359, 4259, 4583, 5483, 5519, 5843, 5879, 6203, 6779, 7103,
7247, 7283, 7607, 7643, 8219, 8363, 10667, 11243, 11279, 11423, 12323, 12647,
12791, 13367,...
No es difícil, dado un número primo,
encontrar otro primo, el menor posible, que se diferencie del primero en un cuadrado.
La función en VBA de Excel puede ser la siguiente:
Function primsalto(a) As Long
Dim p, prim,d As Long
Dim sale As Boolean
if not esprimo(a) then primsalto=0:exit function ‘No es primo y se asigna un cero
p = primprox(a): sale = False:
prim = 0 ‘Se van buscando los siguientes primos
While Not sale
d=p-a ‘Se calcula la
diferencia
if escuad(d) then
prim=p:sale=true ‘Si la diferencia es cuadrada, tenemos la solución
p=primprox(p) ‘Se
sigue con el siguiente primo
wend
primsalto=prim ‘Se
encontró
End Function
Hay que usar las funciones ESCUAD y
PRIMPROX, que se pueden buscar en nuestro blog.
Con ella, comenzando, por ejemplo en
el 7, se construye fácilmente un conjunto dentro de la sucesión:
En este caso nos devuelve otra
sucesión cuyos primeros términos no coinciden con los anteriores. Podía haber
un elemento común, con lo que ambas sucesiones coincidirían totalmente a partir
de él. Volveremos a ese tema.
En la sucesión de OEIS citada se
organiza la búsqueda con un orden distinto, pues para cada primo se le van
sumando cuadrados hasta llegar a otro primo. El código PARI es muy sintético y
lo copiamos aquí.
print1(a=2, ", ");
for(n=1, 43, k=1; while(!isprime(b=a+k^2), k++); print1(a=b, ", "))
Usa la instrucción print para
asignar también valores a las variables. No lo habíamos visto hasta ahora, y es
ingenioso.
Cuestiones diversas
Naturaleza de los cuadrados
Para primos mayores que 6, en cada inicio de sucesión, si se llega a un tipo 36k+p, siendo p primo del tipo 6q+5, todos los cuadrados que se añadan en este proceso serán múltiplos de 36, con lo que el tipo inicial 36k+p se mantendrá.
Efectivamente, si le sumo otro
cuadrado, deberá ser par, para que la suma siga siendo impar, y también ha de
ser múltiplo de 3, pues, en caso
contrario, sería uno de los tipos 6m+2 o 6m+4, y resultaría:
36k+p+(6m+2)² =36(k+m²)+24m+4+p
36k+p+(6m+4)² =36(k+m²)+48m+16+p
Si p=6k+5 no valen estos casos, pues
4+p y 16+p serían múltiplos de 3, con lo que el resultado final no sería primo.
Por tanto, el cuadrado ha de ser múltiplo de 36.
Si p=6k+1, puede no ser el salto de
36k, sino otro cualquiera par, como 4, 16, 64 o 100.
Observamos algunos inicios:
Inicio
37
Este primo es del tipo 6k+1, por lo
que el cuadrado que se suma no ha de ser múltiplo de 36, pero el siguiente, 41,
es del tipo 6k+5, y a partir de él, todos son del mismo tipo. A esta situación
se llegará siempre. Es fácil razonarlo.
36k+6q+1+(6m+2)²
=36(k+m²)+24m+4+6q+1=6h+5
36k+6q+1+(6m+4)²
=36(k+m²)+48m+16+6q+1=6h+5
Lo vemos en la imagen:
Todos los restos módulo 6 valen 5, y
todas las diferencias múltiplos de 36 a partir del 41.
Inicio
47
Este primo es del tipo 6k+5, luego
todos los cuadrados serán múltiplos de 36
Primos consecutivos
Hemos visto que el primo 37, con un
cuadrado se ha convertido en su consecutivo. En este caso, con cuadrado igual a
4. Esto será frecuente, pero habrá otros ejemplos. En un primer intento, todos
los casos hasta el valor de 1000 presentan una diferencia de 4. El siguiente
cuadrado par, 16, se alcanza por primera vez en el par 1831, 1847. La siguiente
diferencia de 64 no se alcanza para valores inferiores a 25000. Con el
siguiente código, adaptado de OEIS, hemos encontrado dos pares de primos
consecutivos con diferencia 64.
primosalto(n)={my(k=1,b);while(!isprime(b=n+k^2),
k++);b}
forprime(i=2,2000,p=nextprime(i+1)
;q=primosalto(i);if(p==q&&p-i==16,print(i," ",p)))
Son estos: (89689, 89753) y (107377,
107441)
Los primeros casos para cada
cuadrado están publicados en https://oeis.org/A138198:
2, 7, 1831, 9551, 89689, 396733,
11981443, 70396393, 1872851947, 10958687879, 47203303159, 767644374817,
8817792098461, 78610833115261, 497687231721157, 2069461000669981,
22790428875364879, 78944802602538877....
Primos comunes a dos sucesiones
Se podría preguntar si estas sucesiones son disjuntas o
existen elementos comunes, y la respuesta es que sí los hay. Hemos usado la
siguiente función para detectar si un número primo pertenece a la sucesión
iniciada con otro primo menor, al que llamaremos antecedente.
function numsaltos$(n)
dim s$
dim i,k
k=0 ‘Contador de soluciones
i=2 ‘Primer inicio primo
while i<=n and k<2
if n=primsalto(i) then k=k+1:s=s+str$(i)+", "’Nueva solución
i=primprox(i)’Siguiente primo posible
wend
if k>=2 then numsaltos=str$(ajusta(k))+". "+s
else numsaltos="NO"
end function ‘Devuelve un par de soluciones o un “NO”
Los primeros elementos comunes, seguidos por dos antecedentes son:
41 5, 37
47 11, 31
83 47, 79
89 53, 73
107 71, 103
167 131, 151
173 29, 137
197 181, 193
131, 167, 311, 347, 383
151, 167, 311, 347, 383
Es evidente que, a partir de un elemento común, todos lo son.
Primos sin antecedentes
Si modificamos la función numsaltos para que devuelva sólo el número de antecedentes, obtendremos otras soluciones interesantes:
Estos serían inicio de sucesión pero no pertenecerían a ninguna otra.
Basta buscar aquellos primos p en los que numsaltos(p)=0. Los primeros son
estos:
2, 5, 13, 19, 29, 31, 37, 43, 61, 67, 73, 79, 103, 109, 127,
139, 151, 157, 163, 179, 181, 191, 193, 199, 211, 223, 229, 241, 271, 277, 283,
313, 331, 337, 349, 359, 367, 373, 379, 397, 409, 421, 431, 433,...
Están publicados en https://oeis.org/A073770