Como sacar los numeros primos
Contenidos
Números primos del 1 al 200
La confusión comienza con esta definición que una persona puede dar de “primo”: un número primo es un número entero positivo que sólo es divisible por 1 y por sí mismo. El número 1 es divisible por 1, y es divisible por sí mismo. Pero él mismo y 1 no son dos factores distintos. ¿Es 1 primo o no? Cuando escribo la definición de primo en un artículo, intento eliminar esa ambigüedad diciendo que un número primo tiene exactamente dos factores distintos, 1 y él mismo, o que un primo es un número entero mayor que 1 que sólo es divisible por 1 y por él mismo. Pero, ¿por qué llegar a esos extremos para excluir el 1?
Mi formación matemática me enseñó que la buena razón para que el 1 no se considere primo es el teorema fundamental de la aritmética, que afirma que todo número puede escribirse como producto de primos exactamente de una manera. Si el 1 fuera primo, perderíamos esa unicidad. Podríamos escribir 2 como 1×2, o 1×1×2, o 1594827×2. Excluir el 1 de los primos lo suaviza.
Mi plan original para este artículo era explicar el teorema fundamental de la aritmética y terminar con él. Pero en realidad no es tan difícil modificar el enunciado del teorema fundamental de la aritmética para abordar el problema del 1 y, después de todo, la pregunta de mi amigo despertó mi curiosidad: ¿cómo llegaron los matemáticos a esta definición de primo? Si echamos un vistazo a algunas páginas de la Wikipedia relacionadas con la teoría de los números, encontramos la afirmación de que el 1 solía considerarse primo, pero ya no lo es. Pero un artículo de Chris Caldwell y Yeng Xiong muestra que la historia del concepto es un poco más complicada. Aprecio este sentimiento del principio de su artículo: “En primer lugar, si un número (especialmente la unidad) es primo es una cuestión de definición, por lo que es una cuestión de elección, contexto y tradición, no una cuestión de prueba. Sin embargo, las definiciones no se hacen al azar; estas elecciones están ligadas a nuestro uso de las matemáticas y, especialmente en este caso, a nuestra notación”.
Lista de números primos
Actualización: Si quieres implementar una solución con división de prueba más rápidamente, puedes considerar tener una caché de números primos. Un número sólo es primo si no es divisible por otros números primos que tengan el valor de su raíz cuadrada. Aparte de eso, podría considerar el uso de la versión probabilística de la prueba de primalidad de Miller-Rabin para comprobar la primalidad de un número si está tratando con valores suficientemente grandes (tomada de Rosetta Code en caso de que el sitio se caiga alguna vez):
Esta versión calcula una lista de raíces cuadradas de primos y sólo comprueba si la lista de números primos está por debajo de la raíz cuadrada, y utiliza una búsqueda binaria en la lista para encontrar primos conocidos. Hice un bucle para comprobar los primeros 1.000.000 de primos, y tardó unos 7 segundos.
El algoritmo de la función consiste en comprobar si n es un múltiplo de cualquier número entero entre 2 y sqrt (n). Si no lo es, entonces se devuelve True lo que significa que el número (n) es un número primo, de lo contrario se devuelve False lo que significa que n divide a un número que está entre 2 y la parte entera del piso de sqrt(n).
Formas de encontrar números primos
se deduce a través del Pequeño Teorema de Fermat. Por otro lado, si p > 1 es compuesto, entonces tiene un divisor primo q. Sea qk la mayor potencia de q que divide a p. Entonces qk no divide a pCq y es relativamente primo
AB1999 M. Agrawal y S. Biswas, Primality and identity testing via Chinese remaindering. En “40th Annual Symposium on Foundations of Computer Science (New York, 1999)”, IEEE Computer Soc., Los Alamitos, CA, 1999. pp. 202–208, MR1917560
AH1992 L. M. Adlemann y M. D. Huang, Primality testing and two dimensional Abelian varieties over finite fields, Lecture Notes in Mathematics Vol, 1512, Springer-Verlag, Berlin, 1992. pp. viii+142, ISBN 3-540-55308-8. MR 93g:11128
APR83 L. M. Adleman, C. Pomerance y R. S. Rumely, “On distinguishing prime numbers from composite numbers”, Ann. Math., 117:1 (1983) 173–206. MR 84e:10008 [La primera de las pruebas de primalidad modernas].
Bach85 E. Bach, Analytic methods in the analysis and design of number-theoretic algorithms, A.C.M. Distinguished Dissertations The MIT Press, Cambridge, MA, 1985. pp. xiii+48, ISBN 0-262-02219-2. MR 87i:11185
Cómo encontrar números primos del 1 al 100
Actualización: Si quieres implementar una solución con división de prueba más rápidamente, puedes considerar tener un caché de números primos. Un número sólo es primo si no es divisible por otros números primos que tengan el valor de su raíz cuadrada. Aparte de eso, podría considerar el uso de la versión probabilística de la prueba de primalidad de Miller-Rabin para comprobar la primalidad de un número si está tratando con valores suficientemente grandes (tomada de Rosetta Code en caso de que el sitio se caiga alguna vez):
Esta versión calcula una lista de raíces cuadradas de primos y sólo comprueba si la lista de números primos está por debajo de la raíz cuadrada, y utiliza una búsqueda binaria en la lista para encontrar primos conocidos. Hice un bucle para comprobar los primeros 1.000.000 de primos, y tardó unos 7 segundos.
El algoritmo de la función consiste en comprobar si n es un múltiplo de cualquier número entero entre 2 y sqrt (n). Si no lo es, entonces se devuelve True lo que significa que el número (n) es un número primo, de lo contrario se devuelve False lo que significa que n divide a un número que está entre 2 y la parte entera del piso de sqrt(n).