martes, 14 de abril de 2020

Productos cíclicos con números primos:


Hace unos meses se estudió en este blog el tipo de expresión N=a*b + b*c + c*a, a la que llamamos “productos cíclicos”. Puedes leerla en


En esa entrada se estudió la unicidad de esta representación para algunos números y aquellos otros que no la admiten para ningún valor. Llegamos a algunas sucesiones finitas ya publicadas. En esta de hoy nos limitaremos al uso de tres números primos distintos.

De entrada se puede razonar que todos los números que consideraremos serán impares, ya que si en a*b + b*c + c*a, a, b y c son primos, puede ocurrir que uno de ellos sea 2, con lo que se sumarán dos productos pares y uno impar, y si ninguno es igual a 2, los tres sumandos serán impares, y también la suma lo será.

En las búsquedas previas que hemos emprendido se ha visto que existen muchos casos distintos en unicidad y número de soluciones. Por ello diseñaremos una función similar a la usada en la entrada enlazada, Function prodciclo$(n), pero que solo admita factores primos distintos y que devuelva los ciclos encontrados y el número de ellos. De esta forma podremos establecer las búsquedas que deseemos. La denominaremos prodcicloprim$. Su esquema es parecido a la anterior, ya que recorremos todos los primos posibles, y de cada par calculamos el tercero a partir de N. Si resulta ser entero, primo y menor que los otros dos, ya hemos encontrado los tres primos buscados. En ese caso se recoge el resultado y se van contando las soluciones, Su algoritmo en VBasic de Excel puede ser:

Public Function prodcicloprim$(n)
Dim s$
Dim i, j, k, m

s$ = "": m = 0   s$ recogerá resultados y m los contará
For i = 2 To (n - 2) / 2 ‘Primer primo
If esprimo(i) Then
j = 2
While j < i And j < n / i ‘Segundo primo
If esprimo(j) Then
k = (n - i * j) / (i + j) ‘Tercer posible primo
‘Si k cumple los requisitos, lo incorporamos a la solución e incrementamos el contador m
If k = Int(k) And k < j And esprimo(k) Then m = m + 1: s$ = s$ + " -- " + Str$(i) + Str$(j) + Str$(k) + "  "
End If
j = j + 1
Wend
End If
Next i
If s$ <> "" Then prodcicloprim = Str$(m) + " " + s$ Else prodcicloprim = "NO"
End Function

Con esta función podremos buscar los números que permiten esta descomposición. Bastará que la misma no devuelva “NO”. También podremos contar soluciones, ya que la respuesta comienza con ese número. Por ejemplo:

prodcicloprim(191)= 4  --  13 7 5   --  13 11 2   --  17 7 3   --  37 3 2 

Esta respuesta nos indica que existen 4 soluciones, que son

191=13*7+7*5+5*13
191=13*11+11*2+2*13
191=17*7+7*3+3*17
191=37*3+3*2+2*37

Con un poco de experiencia en búsquedas se le puede sacar mucho partido a esta respuesta. Según las necesidades, podemos alterar el código para que solo nos devuelva el número de soluciones, o solo estas. Ya dependerá de nuestros intereses. Por ejemplo, el día 10/01/20 publiqué en Twitter que 311 es el primer número que admite ocho descomposiciones de este tipo:

311 es el menor número que es igual a ocho expresiones de la forma pq+qr+rp, con p, q y r primos distintos:

311=13×11+11×7+7×13
311=17×13+13×3+3×17
311=19×13+13×2+2×19
311=23×7+7×5+5×23
311=29×7+7×3+3×29
311=37×5+5×3+3×37
311=43×5+5×2+2×43
311=61×3+3×2+2×61

Con esta función emprenderemos las búsquedas que deseemos:

Números que admiten al menos una representación de este tipo

Exigimos que prodcicloprim sea distinta de “NO”:

Nos resulta una sucesión que ya está publicada:



En la tabla figuran los primeros números que admiten la expresión y junto a ellos el número de soluciones y los primos correspondientes. Vemos números con una, dos o tres representaciones. En cuanto se avanza algo más aparecen más casos múltiples, como el citado 311.

Puedes consultar http://oeis.org/A238397

Números que no admiten esta descomposición

Si buscamos los números en los que el resultado es “NO” obtendremos la lista de los que no se pueden descomponer de esta forma. Sería la complementaria de la anterior. Podríamos rotular estos números como de categoría 0, ya que no admiten ninguna representación cíclica de tres primos, y a los demás les podemos asignar la categoría según el número de representaciones. Así tendríamos estas categorías:

Categoría 0: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, (faltaría el 31) 32, 33,…

Categoría 1: 31, 41, 59, 61, 87, 91, 103, 113, 119, 121, 129, 143, 161, 171, …

Categoría 2: 71, 101, 131, 211, 221, 269, 271, 343, 359, 391, 401, 423, 437, 439, 451, 471,…

Los primeros números del resto de categorías son:

3        151
4        191
5        491
6        671
7        887
8        311
9        1151

Para la categoría 10 no existe ningún caso inferior a 25000.

No hay comentarios: