¿Se puede demostrar que de la lista de números compuestos entre cualquier intervalo X ^ 2 a X + 1 ^ 2 no hay al menos un semiprime 2 * y un semiprime 3 * z?

Esta es una pregunta realmente interesante.

No puedo probarlo, pero parece que será cierto.

Simplemente tomando el ejemplo 2 * y, esencialmente la pregunta es “¿se garantiza que haya un primo entre [matemáticas] (X ^ 2) / 2 [/ matemáticas] y [matemáticas] ((X + 1) ^ 2) / 2 [/ matemáticas]? ”

La conjetura de Legendre es que hay un primo entre [matemáticas] (X ^ 2) [/ matemáticas] y [matemáticas] ((X + 1) ^ 2) [/ matemáticas]. Su pregunta es pedir un límite aún más estricto que la conjetura de Legendre.

Otra forma de decirlo es: ¿hay un espacio Prime mayor que X comenzando justo antes de [math] (X ^ 2) / 2 [/ math]? (Si la respuesta a esto es sí, entonces la respuesta a su pregunta es no, y viceversa).

La conjetura de Cramer (que parece ser verdadera en base al cálculo de números brutos) dice que esperaríamos que la brecha de primos más grande alrededor de X sea un poco más grande que [matemáticas] (log X) ^ 2 [/ matemáticas], lo que será muy ser mucho, mucho más pequeño que X para incluso X muy modestamente grandes. Entonces, la fuerza bruta podría descartar algunos candidatos pequeños, con la conjetura de Cramer ocuparse del resto. ¡Ojalá pudiéramos probar la conjetura de Cramer!

Curiosamente, si la hipótesis de Riemann es cierta, entonces es posible demostrar que la brecha será aproximadamente [matemática] \ sqrt {X} * log X [/ matemática]. Oh, bueno, solo demostremos la hipótesis de Riemann y luego podamos simplemente usar la fuerza bruta por un tiempo. ¿Qué tan difícil puede ser?

Wow: tres conjeturas no comprobadas desencadenadas por una simple pregunta. ¿Es esto un récord?

Aquí hay una buena manera de girar todos los datos. Muestra todos los primos y todos los factores primos 2 * y y 3 * z para cada intervalo cuadrado:

– Columna 1 y 2: el par de cuadrados
– Columna 3: los números primos en el par
– Columna 4: los factores primos 2 *
– Columna 5: los factores primos 3 *

Agregué la salida CSV de 25 a 1000 como comentario (si alguien está interesado pero no quiere ejecutar el código o no tiene Excel).

” ” ” ” ” ” ” ” ” ” ” ”
‘Muestra todos los primos y 2 * y 3 * factores primos por intervalo cuadrado

‘© 2014 Michael M. Ross
” ” ” ” ” ” ” ” ” ” ” ”
‘Para usar este código VBA:
‘1. Comience con una hoja de cálculo de Excel vacía.
‘2. Pegue el código en la página “ThisWorkbook” del editor de Visual Basic.
‘3. Establecer valores mínimos y máximos.
‘(Si min> ~ 100000: formatee la primera columna como texto)
‘En Windows corre muy rápido; en Mac a paso de caracol para discapacitados.

Opción explícita

Sub LC privado ()
Dim n como doble, min como doble, max como doble
Dim nn1 como doble, nn2 como doble
Dim cp como doble
Dim pf2 como doble, pf3 como doble
Dim bl1 como booleano, bl2 como booleano, bl3 como booleano
Dim rw As Long

rw = 2

Con hojas de trabajo (1)

min = 5
max = 100

Si ModOp (min, 2) = 1 Entonces min = min + 1 ‘un número par

n = min

‘bucle externo
Hacer hasta n> max

nn1 = n * n
nn2 = (n + 1) * (n + 1)

‘bucles internos
nn1 = nn1 + 1
nn2 = nn2 – 1

Para cp = nn1 a nn2 Paso 1

.Cells (rw, 1) = Trim $ (nn1 – 1)
.Cells (rw, 2) = Trim $ (nn2 + 1)

If IsPrime (cp) Entonces
.Cells (rw, 3) = Recortar $ (cp)
‘nc = nc + 1
bl1 = verdadero
Terminara si

Si ModOp (cp, 2) = 0 Entonces
If IsPrime (cp / 2) Entonces
pf2 = cp / 2
bl2 = verdadero
Terminara si
Si pf2> 0 Entonces .Cells (rw, 4) = Trim $ (pf2)
pf2 = 0
Terminara si

Si ModOp (cp, 3) = 0 Entonces
If IsPrime (cp / 3) Entonces
pf3 = cp / 3
bl3 = verdadero
Terminara si
Si pf3> 0 Entonces .Cells (rw, 5) = Trim $ (pf3)
pf3 = 0
Terminara si

DoEvents
‘Si bl1 Entonces
‘nc = nc + 1
‘ Terminara si
Si bl1 o bl2 o bl3 entonces
rw = rw + 1
Terminara si

bl1 = falso
bl2 = falso
bl3 = falso

próximo

rw = rw + 2
n = n + 1

Lazo

Terminar con

End Sub

‘Función restante (módulo)
Función privada ModOp (v1 como doble, v2 como doble) como doble

Dim vr As Double

vr = v1 / v2
ModOp = vr – Int (vr)

Función final

‘Usar esto solo para fines de demostración con gemelos pequeños
Función privada IsPrime (pt como doble) como booleana
Dim ap como doble

Si pt <> 2 entonces
Si ModOp (pt, 2) = 0 Entonces
IsPrime = False
Función de salida
Terminara si
Para ap = 2 a Sqr (pt)
Si ModOp (pt, ap) = 0 Entonces
IsPrime = False
Función de salida
Terminara si
DoEvents
próximo
Terminara si

IsPrime = True

Función final
” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ‘ ‘

============================
Aquí hay una prueba rápida de cordura para Excel que muestra dos semiprimes por cada intervalo cuadrado perfecto. Solo busca X ^ 2 + Ns que sean divisibles sin resto por 2 o 3. Luego, el factor no trivial se prueba con primos. Ambos factores primos no triviales se representan en dos intervalos cuadrados anteriores diferentes (aunque este hecho aritmético no se prueba):

” ” ” ” ” ” ” ” ” ” ” ”
‘Conjetura de Legendre (no puede ser falsa)
‘Si siempre hay dos semiprimes de la forma 2 * y y 3 * z entre X ^ 2 y (X + 1) ^ 2
‘entonces una y y z distintas deben estar entre dos intervalos cuadrados perfectos anteriores y diferentes.
‘© 2014 Michael M. Ross
” ” ” ” ” ” ” ” ” ” ” ”
‘Para usar este código VBA:
‘1. Comience con una hoja de cálculo de Excel vacía.
‘2. Pegue el código en la página “ThisWorkbook” del editor de Visual Basic.
‘3. Establecer valores mínimos y máximos.
‘(Si min> ~ 100000: formatee la primera columna como texto)
‘En Windows corre muy rápido; en Mac a paso de caracol para discapacitados.

Opción explícita

Sub LC privado ()
Dim n como doble, min como doble, max como doble
Dim nn1 como doble, nn2 como doble
Dim cp como doble
Dim pf2 como doble, pf3 como doble
Dim bl2 como booleano, bl3 como booleano
Dim rw As Long

rw = 1

Con hojas de trabajo (1)

min = 5
max = 1000

Si ModOp (min, 2) = 1 Entonces min = min + 1 ‘un número par

n = min

‘bucle externo
Hacer hasta n> max

nn1 = n * n
nn2 = (n + 1) * (n + 1)

‘bucles internos
Para cp = nn1 + 1 a nn2 – 1
Si ModOp (cp, 2) = 0 Entonces
If IsPrime (cp / 2) Entonces
pf2 = cp / 2
bl2 = verdadero
Salir por
Terminara si
Terminara si
bl2 = falso
DoEvents
próximo

Para cp = nn1 + 1 a nn2 – 1
Si ModOp (cp, 3) = 0 Entonces
If IsPrime (cp / 3) Entonces
pf3 = cp / 3
bl3 = verdadero
Salir por
Terminara si
Terminara si
bl3 = falso
DoEvents
próximo

.Cells (rw, 1) = Trim $ (nn1)
.Cells (rw, 2) = Trim $ (nn2)
Si bl2 y bl3 entonces
.Cells (rw, 3) = “2 *” + Trim $ (pf2)
.Cells (rw, 4) = “3 *” + Trim $ (pf3)
Terminara si
Si bl2 = Verdadero y bl3 = Falso Entonces
.Cells (rw, 3) = “2 *” + Trim $ (pf2)
.Cells (rw, 4) = “3 *” + “Falso”
Terminara si
Si bl2 = falso y bl3 = verdadero entonces
.Cells (rw, 3) = “2 *” + “Falso”
.Cells (rw, 4) = “3 *” + Trim $ (pf3)
Terminara si

rw = rw + 1
n = n + 1

Lazo

Terminar con

End Sub

‘Función restante (módulo)
Función privada ModOp (v1 como doble, v2 como doble) como doble

Dim vr As Double

vr = v1 / v2
ModOp = vr – Int (vr)

Función final

‘Usar esto solo con fines de demostración
Función privada IsPrime (pt como doble) como booleana
Dim ap como doble

Si pt <> 2 entonces
Si ModOp (pt, 2) = 0 Entonces
IsPrime = False
Función de salida
Terminara si
Para ap = 2 a Sqr (pt)
Si ModOp (pt, ap) = 0 Entonces
IsPrime = False
Función de salida
Terminara si
DoEvents
próximo
Terminara si

IsPrime = True

Función final
” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ‘ ‘