martes, 19 de diciembre de 2017

Suma y diferencia de números del mismo tipo (2)

En la anterior entrada estudiamos los números que son suma y diferencia de otros del mismo tipo, en concreto, triangulares y cuadrados. Estudiaremos en esta los primos y oblongos.

Con primos

Suma de dos primos

Si el número N es par mayor que 2, como sólo estudiaremos números no muy grandes, se cumplirá en él la conjetura de Goldbach y será suma de dos primos. Si es impar, la única solución es que N-2 sea primo. Esos son los dos casos en los que N es suma de dos primos. Podemos resumirlo en una función:

Public Function essumaprimos(n)
If n / 2 = n \ 2 And n > 2 Or esprimo(n - 2) Then essumaprimos = True Else essumaprimos = False
End Function

Con ella obtendríamos el listado contenido en http://oeis.org/A014091

4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 24, 25, 26, 28, 30, 31, 32, 33, 34, 36, 38, 39, 40, 42, 43, 44, 45, 46, 48, 49, 50, 52, 54, 55, 56, 58, 60, 61, 62, 63, 64, 66, 68, 69, 70, 72, 73, 74, 75, 76, 78, 80, 81, 82, 84, 85, 86, 88, 90,…

Diferencia de primos

Se ha conjeturado que todo número par es diferencia entre dos primos, y se cumple para números no muy grandes. Si el número es impar, deberá ser N+2 primo. Así que eliminaremos del listado anterior aquellos impares como el 7 tales que al sumarles dos unidades se obtenga un compuesto.

Quedaría así:

4, 5, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 26, 28, 30, 32, 34, 36, 38, 39, 40, 42, 44, 45, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 69, 70, 72, 74, 76,…

Los únicos impares N del listado son aquellos en los que N-2 y N+2 son ambos primos, como el 69, para el que 67 y 71 son ambos primos.

Observamos que, al final, no supone una gran novedad el hecho de ser suma y también diferencia de dos números del mismo tipo en los casos triangular, cuadrado o primo, que son los más populares. Los demás pueden tener dificultades con la cota del minuendo.

Suma de oblongos 

Recordemos que son oblongos los números doble de un triangular, o que se generan con la expresión N(N+1)

Para desechar casos triviales eliminaremos el cero como oblongo, aunque cumple la definición de ser del tipo n(n+1), ya que 0=0(0+1)

Los primeros números que son suma de dos oblongos mayores que cero son:



En forma de listado:

4, 8, 12, 14, 18, 22, 24, 26, 32, 36, 40, 42, 44, 48, 50, 54, 58, 60, 62, 68, 72, 74, 76, 78, 84, 86, 92, 96, 98, 102, 110, 112, 114, 116, 120, 122, 128, 130, 132, 134, 138, 140, 144, 146, 152, 158, 162, 166, 168, 174, 176, 180, 182, 184, 186, 188, 194, 198, 200, 202, 204, 212, 216, 220, 222, 224, 228, 230, 238, 240,…

Para obtenerlos basta pensar en que un oblongo es el doble de un triangular, luego serán oblongos los números cuya mitad sea triangular. En esa idea se basa la siguiente función:

Public Function sumaoblongos$(n)
Dim x, i
Dim resul$

x = 2: i = 4: resul = "NO"
While x <= n / 2 And resul = "NO"
If estriangular((n - x) / 2) Then
resul = Str$(x) + ", " + Str$(n - x)
End If
x = x + i
i = i + 2
Wend
sumaoblongos = resul
End Function

En ella la x y la i crecen como en los cuadrados, salvo que los oblongos comienzan con el 2 y crecen de dos en dos y los cuadrados comienzan en 1. Así, a los oblongos los genera la sucesión de pares y a los cuadrados la de impares.

Con PARI podemos usar este código:

for(t=1, 400, i=2; j=2; e=0; while(2*i<=t&e==0, if(issquare(4*(t-i)+1), e=1; print1(t, ", ")); j+=2; i+=j))

Es interesante considerar el caso en el que N también sea oblongo. Basta elegir en el listado anterior aquellos términos que sean oblongos.

12, 42, 72, 110, 132, 182, 240, 272, 342, 420, 462, 552, 702, 756, 812, 992, 1122, 1332, 1406, 1482, 1640, 1722, 1892, 1980, 2070, 2162, 2352, 2450, 2652, 2756, 2862, 2970, 3080, 3192, 3306, 3422, 3540, 3782, 3906, 4032, 4160, 4422, 4556, 4692, 5112, 5402, 5550, 5700, 5852, 6006, 6162, 6480, 6642, 6972, 7482, 7832, 8010, 8372, 8556, 8742, 8930, 9120, 9312, 9702,


Código PARI 

Puedes obtener el listado con este código, en el que generamos oblongos con k*(k+1) y después el primer sumando oblongo tal como hicimos en sumaoblongos. La prueba para el segundo sumando es que 4*(t-i)+1 sea cuadrado.

for(k=1, 100, t=k*(k+1); i=2; j=2; e=0; while(2*i<=t&e==0, if(issquare(4*(t-i)+1), e=1; print1(t, ", ")); j+=2; i+=j))


Número de sumas de oblongos distintas

Terminamos con unas curiosidades. Podemos evaluar en cuántas sumas distintas de oblongos se puede descomponer un número. Usamos la función


Public Function numsumaoblongos(n)
Dim x, i, s

x = 2: i = 4: s = 0
While x <= n / 2
If estriangular((n - x) / 2) Then s = s + 1
x = x + i
i = i + 2
Wend
numsumaoblongos = s
End Function

Es similar a sumaoblongos, pero cuenta sumas en lugar de presentarlas.

Estos son los que admiten  dos o más sumas:



Estos otros cuatro o más



Comprobamos el 2762 con nuestra hoja Cartesius, descargable desde
http://www.hojamat.es/sindecimales/combinatoria/herramientas/herrcomb.htm#cartesius

Planteamos




Viene a expresar que 2762 se descompone en dos sumandos del tipo n(n+1), ordenados en orden creciente para evitar repeticiones. Resultan seis, como era de esperar:



Diferencia de oblongos

p(p+1)-q(q+1)=N significa que p^2+p-q^2-q=(p-q)(p+q+1)=N
Es fácil ver que este producto es par en todos los casos, y es lógico, por ser diferencia de oblongos. Por tanto, todos los números pares 2k serán diferencia de dos oblongos, que pueden ser (k+1)k y k(k-1), ya que su diferencia sería 2k. Así:
16=9*8-8*7=72-56

Por tanto, también en este caso el tema de la diferencia es trivial.

No hay comentarios: