Inicio > Uncategorized > Números Primos: Una fórmula para generarlos.

Números Primos: Una fórmula para generarlos.

Sabido es que los números primos (números enteros solo divisibles en sí mismos y en la unidad) son los ladrillos  que forman al edificio matemático, lo que se manifiesta claramente en el El Teorema Fundamental de la Aritmética : todo número positivo se puede descomponer, de forma única, en su factores primos. Dada la importancia de los números primos, cabe la siguiente pregunta:

¿Existe alguna fórmula o procedimiento que permita obtener números primos?

Sí!!!, aunque sea  increíble, existe una  fórmula mediante la cual podemos obtener todos los números primos que querramos. Hmmm!!! … quiero ver:

Sean dos números cualquiera M y N, calculamos lo siguiente:

K=M(N+1)-(N!+1)

y luego:

\displaystyle P=\frac{1}{2}(N-1)[\mid K^2-1\mid -(K^2-1)]+2

Cualquiera sea el valor de M y N, el valor de P que se obtenga de la última fórmula será siempre primo. Asimismo, cada número primo será un valor de P para algún par de valores de M y N. Esta fórmula, créase o no, genera todos los números primos. Es fácil armar una planilla de cálculo excel con una lista de números primos generados de esta manera. Hasta aquí con este post ya tengo ganada la inmortalidad matemática.

Por desgracia para mi hambre de gloria, la realidad es que para la mayor parte de los valores de M y N encontramos que P=2. Con un poco de paciencia otros números primos van apareciendo. Por ejemplo para M=1 y N=2 obtenemos P=3; para M=5 y N=4 resulta P=5; si M=103N=6 obtenemos P=7. Para obtener P=11, hay que ser muy pero muy paciente, dado que no aparece hasta tratar con M=329891 y N=10.

Parece claro a esta altura, que esta forma de generar números primos no es muy eficiente que digamos, dado que  casi siempre el resultado de aplicar estas fórmulas será P=2 (si alguien se anima, que por favor me pase los valores de M y N para P=13). Quizás lo más importante de esta fórmula sea demostrar que los números primos son capaces de ser generados u obtenidos a partir de una fórmula, no obstante de manera ineficiente.

Es muy importante formular métodos eficientes para testear si cualquier número dado es o no un número primo. El método más simple y obvio es, dado un número, analizar los números más pequeños y chequear si éstos dividen exactamente o no al número bajo análisis (excepto el 1, que divide a todos), este tipo de test elemental se puede efectuar perfectamente con una PC mientras el número involucrado no sea muy grande, pero se vuelve totalmente ineficiente para números muy grandes de cientos y más dígitos.

Todos los test de primalidad que se utilizan hoy en día parten de la misma idea, la que se remonta al matemático aficionado del Siglo XVII, Pierre de Fermat, el cual mostró que si se toma un número P que sea primo, con P>2, entonces el número 2^{P-1}-1 es exactamente divisible en P. Para números muy grandes P, es mucho más rápido y fácil de calcular el número 2^{P-1}-1 y ver si es divisible en P, que buscar factores de P. Si P no divide a este número, entonces con seguridad P no es un número primo. Este test rápidamente nos dice si P no es primo. Lamentablemente no se puede concluir tan rápido si P divide a 2^{P-1}-1 que entonces P sea necesariamente primo. Probablemente lo sea, pero hay muchos números que no son primos y son divisibles siguiendo los pasos de este último test.

Volviendo a la fórmula planteada inicialmente, ¿de dónde sale? ¿cómo se obtiene?. Para ello hay que remontarse nuevamente al Siglo XVIII para revisar un resultado atribuido a un tal Sir John Wilson y denominado en su honor  Teorema de Wilson:

Para un número entero positivo N, \displaystyle N+1 es un número primo si \displaystyle N!\equiv -1 (mod N+1) (1)

Ejemplo: sea N=6, entonces \displaystyle N+1 ( o sea 7) es primo dado que \displaystyle N!=720\equiv -1(mod7).

Otras maneras de plantear el mismo teorema son las siguientes:

1) Si N es un número primo, entonces (N-1)!\equiv -1(modN)

2) Si N es primo entonces es factor de \displaystyle(N-1)!+1

Sucede con frecuencia, en la historia de las matemáticas, que los nombres asignados a las conjeturas, teoremas y principios olvidan a personajes que tuvieron la idea original o hicieron una contribución fundamental a los mismos. El Teorema de Wilson, en este sentido, no es una excepsión. Este teorema fue descubierto por un matemático hindú llamado Bhaskara en el siglo VII, luego explicado por Ibn al-Haytham en el año 1000 DC, el teorema era conocido por Leibniz un siglo antes de nacer Wilson, el inglés Edward Waring lo planteó por primera vez en una publicación matemática llamada  Meditationes Algebraicae y finalmente fue demostrado por el matemático francés Joseph-Louis Lagrange en 1770, ¿cuál fue entonces el mérito de Wilson?.

Supongamos que se quiere obtener un número primo Q. Definimos \displaystyle N=Q-1, entonces por el Teorema de Wilson (1) \displaystyle N+1 es primo si \displaystyle N!\equiv -1(modN+1). Esto significa que N!+1 es divisible en \displaystyle N+1, por lo que debe existir un número entero M tal que M(N+1)-(N!+1)=0, en la primera parte del procedimiento descripto  al comienzo, se da entonces que \displaystyle K=0.

Ejemplo: Si \displaystyle Q=7, tenemos que N=6 y M=103.

Pero ahora tenemos que:\displaystyle P=\frac{1}{2}(Q-1)[\mid 1\mid-(-1) ]+2=\frac{1}{2}(Q-2)2+2=Q. Así la fórmula arroja cada número primo.

Si elegimos un número N tal que \displaystyle N+1 no es primo, tenemos que: \displaystyle N!\not\equiv -1(modN+1) y, cualquiera sea el número M que seleccionemos, \displaystyle K\not=0. Así \displaystyle K^2-1\geq 0 y P=\frac{1}{2}(N-1)[\mid K^2-1\mid -(K^2-1)]+2=2 obtendremos el número primo 2.

Esto explica porqué la fórmula entrega frecuentamente el valor P=2.  Sin embargo, la fórmula dará todos valores primos y ningún otro, de manera muy ineficiente, cada vez que tanto M como N varíen.

Referencias:

# Prime Beef – Keith Devlin – Mathematical Spectrum Volume 18 1985/1986 Number 2 pp 33-34.

# Seconds of Prime Beef – Mathematical Spectrum Volume 19 1986/1987 Number 1 pp 19-20.

# Wilson’s Theorem – Encyclopedia Britannica Online (Consulta del 04/04/2010).

# Wilson’s Theorem – Wapedia (Accedido el 05/04/2010).

(Esta entrada se propone para la tercera edición del Carnaval de Matemáticas el próximo 19/04/2010 en el blog Geometría Dinámica).

About these ads
Categorías:Uncategorized
  1. Jonas Castillo Toloza
    julio 10, 2010 en 10:13 am | #1

    ESTE ES MI APORTE

    p = un nùmero primo mayor que 3.
    q = ((p – 1)!+1))/ p^n
    m! < p^2

    q es congruente con r (mod.m!)

    Entonces r = 1 ò primo

  2. Mislay
    agosto 4, 2010 en 2:17 pm | #2

    Vea aquí la solución de los números primos. La espera ha terminado.

    http://transmultiversalidad.es.tl/La-soluci%F3n-de-los-n%FAmeros-primos.htm

  3. Joas Castilo Toloza
    agosto 21, 2010 en 10:22 am | #3

    Prueba co N = 12
    M = 36.846.277

  4. Joas Castilo Toloza
    agosto 21, 2010 en 10:26 am | #4

    prueba con N = 12
    M = 36.846.277

  5. Golbachito
    septiembre 26, 2011 en 6:22 pm | #5

    Chequen esta nueva fórmula, esta impresionante, wow!…

    http://misterionumerosprimos.blogspot.com

  6. Walton
    marzo 6, 2012 en 10:58 am | #6

    La Fórmula no sirve…si se dan cuenta, el valor de P será siempre 2, ya que el primer término con la N, el K al cuadrado – 1 con valor absoluto y todo ese enredo es siempre cero, y por eso queda siempre el 2…o es esto, o hay error en la fórmula…tal vez el K cuadrado con valor absoluto no es – 1 sino +1

  7. José F. Hernández R.
    agosto 2, 2012 en 5:09 pm | #7

    Señor números primos: una fórmula para generarlos. Está muy chistosa su presentación; es una lástima que la gloria y fama de matemático aún no le llegue. Tiene que seguir luchando.
    Mi nombre es José F. Hernández R. resido en Managua, Nicaragua; soy profesor de matemáticas en educación media, actualmente estoy jubilado. También he tratado de encontrar una fórmula que genere números primos. A lo más que he llegado ha sido a lo siguiente: f(n) = 2n + 3; donde: “n” : -1/2, 0, 1, 2, 4, 5, 7, 8, …; además “n” no debe ser múltiplo de 3, ni terminar en cifra 1 ó 6. Este modelo no es perfecto, da todos los números primos en su secuencia natural, no hay saltos, pero además de las restricciones indicadas resultan también algunos números compuestos. Pruebe el modelo y me hace saber su opinión.

  8. agosto 15, 2012 en 3:11 pm | #8

    Bah!, a quién quieren impresionar? Yo resolví la hipótesis de riemann, en calzoncillos, y no hago tanta alharaca. Lástima que este espacio es demasiado pequeño para escribirla aquí mismo, porque se trata de una demostración verdaderamente hermosa….

    • José F. Hernández R.
      agosto 18, 2012 en 12:23 pm | #9

      Cro.Ivan Tchakoff: Apuntes matemáticos.
      Agradezco la atención prestada a mi comentario a su tema de los números primos. Si realizó la demostración de la Hipótesis de Riemann, envíeme algunas indicaciones sobre la misma, pero por favor no lo haga en paños menores. Estoy animado porque en la página se den comentarios sobre los pequeños aportes que se presentan sobre los números primos. también me interesan las Ternas Pitagoricas Primitivas, sobre las cuales tengo algunos apuntes. Me agradaría conocer algunas generales sobre su persona.
      Hasta pronto. Fraternalmente.José F. Hernández R.

      • George
        agosto 22, 2012 en 7:39 pm | #10

        Agradeceria si puedes enviarme alguna informacion sobre Ternas Pitagoricas, pues estoy investigando sobre el tema.

      • George
        agosto 22, 2012 en 7:40 pm | #11
      • agosto 23, 2012 en 1:12 am | #12

        Hola no tengo material específico sobre ternas pitagóricas como para compartir contigo en estos momentos, pero buscando en Google estoy seguro vas a encontrar muchísima información sobre el tema.

        Saludos

      • agosto 23, 2012 en 1:10 am | #13

        Hola, demostrar la hipotesis de riemman me excede, este blog se compone de notas que tomo a partir de mis lecturas, no son mas que apuntes como lo dice el título del blog. No soy matemático pero me gustan las matemáticas y cuando leo algo que me gusta, ponerlo en mis propios términos con mis palabras me ayuda a comprenderlo mejor, a internalizarlo.

        Saludos.

  9. agosto 15, 2012 en 4:25 pm | #14

    Walton: La fórmula sirve, ya que para ciertos números, al hacer que k valga cero, el valor absoluto da 1 – - 1, lo que equivale a decir 1+1. Sino, fijate como dice el autor, hacé una planilla de excel y vas a ver.

  10. agosto 15, 2012 en 4:54 pm | #15

    Cuando K es igual a cero, el número primo que se genera es N +1. Ahí está el caso de N=2 y P=3, N=4 y P=5, N=6 y P=7, etc…

  11. Junquillo
    enero 22, 2013 en 3:29 am | #16

    esta funciona con exactitud. deben crear una macro con el editor de VB y con este codigo
    Sub GetFactors()
    Dim Count As Integer
    Dim NumToFactor As Single ‘Integer limits to < 32768
    Dim Factor As Single
    Dim y As Single
    Dim IntCheck As Single

    Count = 0
    Do
    NumToFactor = _
    Application.InputBox(Prompt:="Type integer", Type:=1)
    'Force entry of integers greater than 0.
    IntCheck = NumToFactor – Int(NumToFactor)
    If NumToFactor = 0 Then
    Exit Sub
    'Cancel is 0 — allow Cancel.
    ElseIf NumToFactor 0 Then
    MsgBox “Please enter an integer — no decimals.”
    End If
    ‘Loop until entry of integer greater than 0.
    Loop While NumToFactor 0
    For y = 1 To NumToFactor
    ‘Put message in status bar indicating the integer being checked.
    Application.StatusBar = “Checking ” & y
    Factor = NumToFactor Mod y
    ‘Determine if the result of division with Mod is without _
    remainder and thus a “factor”.
    If Factor = 0 Then
    ‘Enter the factor into a column starting with the active cell.
    ActiveCell.Offset(Count, 0).Value = y
    ‘Increase the amount to offset for next value.
    Count = Count + 1
    End If
    Next
    ‘Restore Status Bar.
    Application.StatusBar = “Ready”
    End Sub

    Sub GetPrime()
    Dim Count As Integer
    Dim BegNum As Single ‘Integer limits to < 32768
    Dim EndNum As Single
    Dim Prime As Single
    Dim flag As Integer
    Dim IntCheck As Single
    Count = 0

    Do
    BegNum = _
    Application.InputBox(Prompt:="Type beginning number.", Type:=1)
    'Force entry of integers greater than 0.
    IntCheck = BegNum – Int(BegNum)
    If BegNum = 0 Then
    Exit Sub
    'Cancel is 0 — allow Cancel.
    ElseIf BegNum 0 Then
    MsgBox “Please enter an integer — no decimals.”
    End If
    ‘Loop until entry of integer greater than 0.
    Loop While BegNum 0

    Do
    EndNum = _
    Application.InputBox(Prompt:=”Type ending number.”, Type:=1)
    ‘Force entry of integers greater than 0.
    IntCheck = EndNum – Int(EndNum)
    If EndNum = 0 Then
    Exit Sub
    ‘Cancel is 0 — allow Cancel.
    ElseIf EndNum < BegNum Then
    MsgBox "Please enter an integer larger than " & BegNum
    ElseIf EndNum 0 Then
    MsgBox “Please enter an integer — no decimals.”
    End If
    ‘Loop until entry of integer greater than 0.
    Loop While EndNum < BegNum Or EndNum 0

    For y = BegNum To EndNum
    flag = 0
    z = 1
    Do Until flag = 1 Or z = y + 1
    ‘Put message into Status Bar indicating the integer and _
    divisor in each loop.
    Application.StatusBar = y & ” / ” & z
    Prime = y Mod z
    If Prime = 0 And z y And z 1 Then
    flag = 1
    End If
    z = z + 1
    Loop

    If flag = 0 Then
    ‘Enter the factor into a column starting with the active cell.
    ActiveCell.Offset(Count, 0).Value = y
    ‘Increase the amount to offset for next value.
    Count = Count + 1
    End If
    Next y
    ‘Restore Status Bar.
    Application.StatusBar = “Ready”
    End Sub

  1. abril 12, 2010 en 4:44 am | #1

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 27 seguidores

%d personas les gusta esto: