En el año 2009 presenté los números k-casi primos, que son aquellos que poseen k divisores primos, no necesariamente distintos, así, 48=24*3 es 5-casi primo, y 30=2*3*5, 3-casi primo.
https://hojaynumeros.blogspot.com/2009/12/primos-semiprimos-y-casi-primos-1.html
Casos particulares son los primos, para k=1, los
semiprimos, con k=2 y un caso particular para k=3 son los esfénicos, que poseen
tres factores primos distintos, como el 42=2*3*7
Es un concepto elemental, por lo que su presencia en
Internet no es muy extensa. Una excepción interesante es la página https://mathworld.wolfram.com/AlmostPrime.html
En ella se reproducen fórmulas teóricas que cuentan el
número de k-casi primos menores o iguales a un número dado N. Comenzaré con esa
cuestión, pero desarrollándola con herramientas informáticas.
Distribución de los k-casi primos
Para identificar los números de este tipo podemos usar la
función BIGOMEGA, que cuenta todos los factores primos con repetición. Algunos
lenguajes de programación la tienen incorporada, como PARI. En él basta igualar
esa función al valor de k:
escasiprimo(n,k)=bigomega(n)==k
Con eso basta.
Con este código encontramos todos los 5-casi primos del 1
al 500:
%3 = (n,k)->bigomega(n)==k
32, 48, 72, 80, 108, 112, 120, 162, 168, 176,
180, 200, 208, 243, 252, 264, 270, 272, 280, 300, 304, 312, 368, 378, 392, 396,
405, 408, 420, 440, 450, 456, 464, 468, 496, 500, …
Están publicados en https://oeis.org/A014614, y su tratamiento es elemental.
Para hojas de cálculo vale esta versión de la función
BIGOMEGA:
Function bigomega(n)
Dim f, a, b
Dim vale As Boolean
a = n
f = 2:
b = 0
While
f * f <= a ‘f Es un
posible factor primo
vale = False
While a / f = Int(a / f)’ ¿Es divisor?
b = b
+ 1’ Se cuentan repeticiones
a = a / f
vale = True
Wend
If f = 2 Then f = 3 Else f = f + 2 ‘Siguiente factor
Wend
If a > 1 Then b = b + 1’último factor
bigomega
= b
End
Function
Con esta función podemos construir ESCASIPRIMO(N,K):
Function escasiprimo(n, k) As Boolean
Dim a
a = bigomega(n)
If a = k Then escasiprimo = True Else escasiprimo =
False
End Function
¿Cuántos casi primos de cada clase son menores
o iguales a un número n?
Para encontrar las frecuencias, bastará dimensionar un
vector para ellas, por ejemplo, del 1 al 10, y dejar el 11 para “otros mayores
de 10”
No es difícil la operación. La siguiente función las
calcula y devuelve una lista con comas, para que se pueda convertir el texto en
columnas.
Function
estad_casi$(n)
Dim
v(11)
Dim a, i, j
Dim s$
s$ =
""‘Contenedor de la lista de frecuencias
For i = 1 To 11: v(i) = 0: Next I ‘Frecuencias a cero
For j
= 2 To n
a =
bigomega(j) ‘Encuentra el tipo de casiprimo
If a > 10 And a > 0 Then v(11) = v(11) + 1 Else
v(a) = v(a) + 1
‘Se
cargan las frecuencias en el vector
Next j
For i = 1 To 11
s = s
+ ajusta(v(i)) ‘Se elabora la lista
If i < 11 Then s = s + ","
Next i
estad_casi
= s
End
Function
Por
ejemplo, la estadística para n=5000 es la siguiente:
669,1365,1273,832,452,224,104,47,22,7,4
Si
usamos la prestación de “Texto a columnas” podemos construir tablas de
frecuencias y gráficos en hoja de cálculo:
Los resultados son lógicos. El máximo se presenta en los semiprimos. Los cuatro que poseen bigomega mayor que 10 son:
Sería interesante un ajuste a algún tipo de distribución,
como la del modelo logístico de las epidemias. Ahí dejo el reto.
Cuestión 2: Descomposición de 2k-casiprimos en dos k-casiprimos
Un ejercicio sencillo es el de obtener la descomposición de
un 2k-casiprimo en dos k-casiprimos. Nos permitirá desarrollar algunas
técnicas.
Con una función
900=22*32*52 se puede
descomponer en los 3-casiprimos 12=2*2*3 y 75=3*5*5. ¿En cuantos productos más?
Con esta función se pueden encontrar todos. Como es tan solo una demostración,
no se ha previsto que n no sea 2k-casiprimo, y se ha adaptado al ejemplo,
suponiendo k=3. Para otro ejemplo, basta corregir.
Function
dosfact$(n)
s =
""
For i
= 2 To Sqr(n)
If n / i = n \ i Then’ Es divisor
If bigomega(i) = 3 Then’ Es 3-casiprimo
j = n / i: s = s + ajusta(i) + "×" +
ajusta(j) + " "
End If
End If
Next i
dosfact
= s
End
Function
Nos
resultan cuatro descomposiciones:
Con Cartesius
Con esta herramienta también se puede intentar
(https://www.hojamat.es/sindecimales/combinatoria/herramientas/herrcomb.htm#cartesius)
Usamos las condiciones:
xtotal=3
xt=2,3,5
contar(2)<3
contar(3)<3
contar(5)<3
creciente
Piden
combinar los tres números primos de 900 de forma que ninguno se repita más de
dos veces. Así resultarán 3-casiprimos divisores de 90.
Sus
desarrollos en factores resultan ser:
Y sus productos:
Obtenemos los mismos factores casiprimos. Al emparejarlos resultan los cuatro productos.
Razonamos
No son necesarias las herramientas
informáticas en este caso. Si cada factor ha de poseer tres factores primos,
sólo uno de ellos se podrá repetir, porque 900 no posee factores elevados a un
exponente mayor que 2, luego tenemos: un factor sin repetición, 2*3*5 y seis
factores con un elemento repetido. Como hay tres factores distintos en 900, y solo
uno se repite, ese dará lugar a dos casos, y seis en total. Sumamos y nos
resultarán siete factores posibles.
El principio de inclusión y exclusión nos
ayuda a generalizar a más factores:
Card(AÈBÈC) =Card(A) + Card(B) + Card(C) -
Card(AÇB) - Card(AÇC) - Card(BÇC) + Card(AÇBÇC)
En este caso, podemos encontrar el número
máximo combinaciones con repetición de los factores de 900 y restarle los
arreglos no permitidos porque supongan repeticiones de tres o cuatro veces:
Sería:
Se deja así para quienes quieran seguir
razonando.
Para casos más complejos podemos acudir a
unas entradas recientes de este blog, que tratan el tema de los
submulticonjuntos.
Cuestión 3: Además de
casiprimos, ¿de qué otro tipo son?
Triangulares
Si pensamos en k-casiprimos triangulares,
la primera idea es acudir a los semiprimos. Si N=n(n+1)/2 por ser triangular,
uno de los factores de N deberá ser par, sea por ejemplo, n, y en ese caso n/2
y n+1 deberán ser primos. Si el factor par es n+1, lo serán (n+1)/2 y n. En
ambos casos, el semiprimo deberá ser producto de un primo p en el que p+1 o p-1
sea doble de un primo. Los primeros ejemplos son: 6=3*4/2=3*2, 10=4*5/2=2*5,
15=5*6/2=5*3, …Todos ellos son triangulares y también semiprimos.
Con estas líneas los identificamos en PARI
a(n)=bigomega(n)==3&&omega==3&&(8*n+1)
for(k=4,5000,if(a(k)>0,print1(k,",
")))
La expresión 8*n+1 viene de que es
cuadrada en los triangulares.
6, 10, 15, 21, 55, 91, 253, 703, 1081,
1711, 1891, 2701, 3403, …
Están
publicados en https://oeis.org/A068443
Para los
demás k-casiprimos, basta igualar bigomega a k en el anterior código PARI. Por
ejemplo, los primeros triangulares 5-casiprimos son:
120, 300, 378, 496, 630, 780, 990, 1128, 1485, 1540, 1596, 2556, 2628, 2850, 3160, 3321, 3570, 3828, 4095, 4851, …
Están publicados muchos casos.
Oblongos
Los oblongos poseen la fórmula N=k(k+1),
luego salvo 6=2*3, no podrán ser semiprimos. Los primeros 3-casiprimos lo serán
si son doble de los triangulares semiprimos estudiados en el apartado anterior:
12, 20, 30, 42, 110, 182, 506, 1406, 2162,
3422, 3782, …
Han de tener un factor primo igual a 2, y
de ahí que resulten muchos dobles de los anteriores. Pueden ser múltiplos de
4, y así obtenemos el 12 y el 20 de
nuevo. No hay más posibilidades.
Si buscamos ejemplos con k mayor que 3, se
multiplican las soluciones, como 56=7*8 con k=4, 72=8*9 con k=5, y así con
valores mayores. Su abundancia les quita interés.
Cuadrados o cubos
Dependerá del valor de k. Es fácil razonar
que si es múltiplo de 2, podrán aparecer cuadrados, como 4=2*2, semiprimo,
36=2*2*3*3, con k=4, y cubos, con k múltiplo de 3. No tienen más misterio.
Números de Fibonacci
En este blog se ha usado la función esfibo:
a = 5 * n * n + 4
If escuad(a) Then f = True
a = 5 * n * n - 4
If f = True
esfibo = f
Con ella y bigomega se pueden encontrar.
Si los traducimos a PARI se obtienen los primeros:
Para semiprimos usamos
a(n)=bigomega(n)==3&&(issquare(5*n*n+4)
|| issquare(5*n*n-4))
for(k=4,5000,if(a(k)>0,print1(k,",
")))
Resultan estos primeros ejemplos:
21, 34, 55, 377, 4181, 17711, 121393, …
Están
publicados en https://oeis.org/A053409
Con k=3
sólo han sido publicados los casos de esfénicos, más general es
8, 610,
987, 10946, 75025, …
Es un
camino a seguir para buscar más casos.






No hay comentarios:
Publicar un comentario