Ya corregido el programa, la conjetura se sigue cumpliendo tal como decía; repito el enunciado para que quede claro:
Dado un múltiplo de 6, si se cumple la conjetura fuerte de Goldbach para dicho número (con esta condición previa) siempre existen al menos dos primos \( p_1 \) y \( p_2 \) tales que\( 2n=p_{1}+p_{2}:\, p_{1}+2\in\mathbb{P}\vee p_{2}+2\in\mathbb{P}
\)
(la disyunición no es excluyente, ya lo he mirado).
Otra cosa que tengo que añadir es que puede ocurrir esto
1,2,3,4,5,(6),7,8,9,10,11,12 con 5+7= 12
y resulta que el propio \( p_2 \) es el gemelo de \( p_1 \); así que se cumple la condición en ese caso.
Probando los primeros 10000 pares consecutivos de manera que el programa liste los que no cumplen la condición, no se encuentra ningún múltiplo de 3 (luego, he probado unos cuantos más pero a saltos). El último que da esta lista es 19988.
Los números que no cumplen lo dicho empiezan a partir de 38: son 38,
68,
80,
98,
122...
O sea, hasta 38 todos los pares sí tienen alguna “pareja Goldbach” tal que alguno de sus primos tiene un primo gemelo hacia la derecha.
Veamos un poco lo que quiere decir esto con unos ejemplo:
El número 38, primero de la lista, se puede formar con dos parejas de primos, que son
7, 31
19, 19 (ésta se puede excluir, como dije)
Sumando 2 a esos primos no encontramos primos gemelos en ningún caso, tenemos 9, 33, 21.
El número 68, siguiente de la lista, se puede formar con dos parejas de primos, que son
7, 61
31, 37
Lo mismo, siempre tenemos compuestos si sumamos 2: son 9, 63, 33 y 39
El siguiente
es 80, y en esta ocasión encontramos cuatro “parejas Goldbach”
7, 73
13, 67
19, 61
37, 43
Una vez más, sumando 2 tenemos 9, 75, 15, 69, 21, 63, 39, 45; todos compuestos, sin compañeros gemelos a la derecha.
Una vez que ya he comprobado bien que el programa hace lo que quiero que haga, repito la lista corregida:
Spoiler
38,
68,
80,
98,
122,
128,
146,
158,
164,
188,
206,
212,
218,
224,
248,
278,
290,
302,
308,
326,
332,
338,
344,
368,
374,
380,
398,
410,
416,
428,
440,
458,
476,
488,
500,
518,
530,
536,
542,
548,
554,
578,
584,
608,
614,
626,
632,
638,
668,
674,
692,
698,
710,
716,
728,
734,
740,
752,
758,
770,
782,
788,
794,
806,
818,
836,
848,
854,
872,
878,
896,
902,
908,
920,
926,
938,
962,
968,
992,
...
El programa es éste
Spoiler
#-*- coding: utf-8 -*-
from sympy import*
indicador1 =0 # Se definenen unas variables
indicador2=2
q=0
m=0
'''
Aquí abajo aparece la función "G". Empieza con el bucle for que va eligiendo las parejas de impares. Define el número "b", compañero de "a".
Debajo aparece la condición para los cumplen y justo debajo, después del "else" la misma par los que sí la cumplen (para listar unos u otros según se quiera después).
Acompaña a cada condición un indicador puede tomar valores 1 ó cero, para el primer indicador, y 2 ó cero para el segundo (que podría ser también 1 pero lo he puesto así).
Al par que cumple la función se le llama "m" y al que no "q".
Cuando una pareja cumple la condición dado un cierto "n", el indicador cambia, deja de valer cero y ya se queda "activado" aunque vengan más parejas después que puedan cumplirla o no (basta con que haya una).
La función sólo se pone en marcha cuando el programa llega al bucle de "n" que hay debajo de ella.
Este bucle empieza tomando el valor "n=3", así que se va a trabajar empezando por el par 6.
Una vez toma el valor, comprueba, con en el "if" que le sigue, el indicador la condición (la que pregunta si cumple, la otra no la uso en este programa).
Si el indicador está a cero, es decir, si no se ha cumplido con ninguna pareja, entonces lista el número (sólo si es distinto de cero, porque al principio esta definido como cero antes de llamar a la función).
Más abajo mira a ver si es múltiplo de 3 con un "if", y si eso se hace un break e indica el fallo (pero eso no pasa nunca).
Una vez listado el número pone el indicador otra vez a cero, toma el siguiente "n" (si era 3, toma 4...) y llama a la función para que se ejecute; y así hasta que prueba todos los valores de "n" que se le hayan dado.
(Aquí ya viene lo que es el código de ejecución):
'''
def G():
global indicador1, indicador2, m, q
for a in range (3,n,2):
b=2*n-a
if isprime (a) == True and isprime (b)== True and (isprime (a+2)==True or isprime (b+2) == True):
indicador1 = 1
m=2*n
else:
if isprime (a) == True and isprime (b)== True and (isprime (a+2)==False and isprime (b+2) == False):
indicador2 = 2
q=2*n
# Bucle de "n"
for n in range (3,500):
if indicador1 ==0 and q != 0:
print "%d," %(q)
if q % 3 ==0:
print "FALLA"
break
indicador1 =0
indicador2 =0
llamar = G()
llamar
Espero que ahora ya no haya problemas y todo quede claro.
...
Como también decía, si los descomponemos vamos encontrando que entre sus factores hay primos de todos los colores, 2,5,7,11,13... a unas distancias que no son regulares (como es lógico, porque la condición es un tanto especial) pero faltan siempre los múltiplos de 3, que estarían a una distancia imposible, sin “enlazar modularmente” con nadie desde el principio de la sucesión de naturales; esto es algo vago dicho así, pero ¿se entiende lo que quiero decir?
Los números naturales, en orden, guardan una distancia “p” sin son múltiplos de “p”; y después a “p” le sigue “2p”, etc., en fin, no hay que dar más explicaciones.
Aquí no pasa eso exactamente así, pero tomando una cantidad de números de la lista vamos a encontrar un porcentaje de múltiplos de 2, de 5... que están en ese conjunto a unas distancias irregulares pero no demasiado grandes. Estas distancias son irregulares porque, evidentemente, faltan los múltiplos que sí cumplen la condición. En definitiva... cada uno puede sacar sus conclusiones y hacer sus apuestas sobre si esto se cumple o no.
Sin embargo, al no ser únicamente los múltiplos de 3 los que cumplen la condición, se hace difícil de tratar; no se puede ni intentar trabajar por reducción al absurdo (al menos directamente) porque no es absurdo que los no múltiplos de 3 la cumplan, ya que existen, y muchos.
Si se demostrara no aportaría mucho en cuanto a hacer afirmaciones; casi sólo se sacaría esto en limpio: “si la conjetura de Goldbach se cumple, entonces hay infinitos primos gemelos...” Todo muy condicionado. En otras palabras, la demostración serviría para hacer una segunda conjetura más; ya que, para considerar la condición, primero tiene que haber esos dos primos, que no está demostrado formalmente que los haya. No obstante, no deja de ser una conjetura muy llamativa, al menos a mí así me lo parece.
Los múltiplos de 2, como son todos, pues siempre aparecerán entre los que la cumplen y los que no, obviamente; pero qué pasa si consideramos el caso “p=3” de lo que he dado en llamar (en la primera respuesta de este hilo) la conjetura generalizada; ¿ocurrirá algo paralelo con otro primo, como podría ser, por ejemplo, el 5? Quizá pueda haber alguna “simetría” en todos los casos.