Una forma de obtener ideas para el blog es la de elegir un número al azar y buscarlo en OEIS (http://oeis.org), la Enciclopedia de sucesiones enteras. En una de estas exploraciones aparecieron las relaciones de los números semiprimos con los cuadrados. Me pareció un tema que podía dar juego, y aquí lo tenéis.
Comenzamos con aquellos semiprimos que sobrepasan a un
cuadrado en un número k prefijado. Recorreremos algunos casos de k.
Podemos imaginar una función en la que identificamos n como semiprimo le restamos k y
vemos si es cuadrado. Por motivos de rendimiento, es preferible pensarlo al
revés, que sería averiguar si el número es de la forma n²+k y después comprobar
si es semiprimo. Se puede disponer de una función essemiprimo (o, en algunos lenguajes de programación,
hacer bigomega(n)=2), pero integraremos esa comprobación en el código
general.
Se puede usar una función (semiconcuad(n,k)) construida
para Excel o Calc, pero fácilmente trasladable a otros lenguajes. Usaremos en
ella la función escuad, que identifica los cuadrados y que puede tener
este listado:
Public Function
escuad(n) As Boolean
escuad
= False
Else
If
n = Int(Sqr(n)) ^ 2 Then escuad = True Else escuad = False
End
If
End Function
También usamos la función esprimo que puedes encontrar
en cualquier buscador escribiendo “función
esprimo hoja”. Se ha usado mucho en este blog, por lo que se puede omitir
cualquier explicación sobre ella.
function semiconcuad(n,k) as boolean
dim
d,m,r,q
dim
noes as boolean
‘Si
n-k no es cuadrado o n=1, sale del algoritmo
d=2:noes=true:r=sqr(n)
‘La raíz cuadrada de n es el tope de los divisores propios
while
d<=r and noes ‘Se busca si es semiprimo
q=int(n/d)
‘Para cada divisor se busca el complementario
if
n=d*q and esprimo(q) and esprimo(d) then noes=false ‘Busca dos factores
primos
d=d+1
wend
semiconcuad=not
noes ‘Es semiprimo
end function
Caso k=1
Si aplicamos una búsqueda para k=1 resultan estos primeros
semiprimos:
10, 26, 65, 82, 122, 145, 226, 362, 485, 626, 785, 842, 901, 1157,
1226, 1522, 1765, 1937, 2026, 2117, 2305, 2402, 2501, 2602, 2705, 3365, 3482,
3601, 3722, 3845, 4097, 4226, 4762, 5042, 5777, 6085, 6242, 6401, 7226, 7397,
7745, 8465, 9026, 9217, 10001
Están publicados en http://oeis.org/A144255
En esa publicación se destaca que sus factores primos serán distintos, porque n²+1 no puede ser cuadrado. Por ejemplo, 26=52+1=2*13.
Las bases de los cuadrados no presentan ninguna pauta aparente: 3, 5, 8, 9, 11, 12, 15, 19, 22, 25, 28, 29, 30, 34, 35, 39,…
Con la función presentada más arriba es fácil encontrar los
primeros semiprimos de la forma n²+k.
Es útil si deseamos saber si un número cualquiera cumple lo exigido, pero si
solo nos interesa el listado, se puede sustituir por una subrutina. La que
sigue escribe con rapidez las primeras 50 soluciones para k=1 en la celda 9,9
de la primera hoja:
sub listsemiconcuad() as boolean
dim
res$
dim
noes as boolean
for
n=1 to 50
m=n^2+1
d=2:noes=true:r=sqr(m)
while
d<=r and noes
q=int(m/d)
if
m=d*q and esprimo(q) and esprimo(d) then noes=false:res$=res$+",
"+str$(m)
d=d+1
wend
next
n
call
escribestring(0,8,8,res$)
end
sub
10, 26, 65,
82, 122, 145,
226, 362, 485,
626, 785, 842,
901, 1157, 1226,
1522, 1765, 1937,
2026, 2117, 2305,
2402, 2501
En la tabla figuran el número semiprimo, la base del cuadrado
correspondiente y la factorización del primero. Los semiprimos aquí tampoco
serán cuadrados.
Igualmente, para k=3:
Las bases de los cuadrados, 1, 6, 16, 18, 20, 24, … están publicadas en http://oeis.org/A242331. Aquí sí hay una solución cuadrada, el 4, igual a 12+3.
K=-1
Los números de la segunda columna, bases de los cuadrados
correspondientes, será, pues, los promedios de los pares de primos gemelos.
Se puede plantear algo similar para los cubos, buscando semiprimos de la forma n3+k, pero está casi todo publicado y no tiene interés añadido. Lo dejamos aquí.
No hay comentarios:
Publicar un comentario