¿Qué son los números primos?
A número primo se define como un número natural mayor que 1 y es divisible sólo por 1 y por sí mismo.
En otras palabras, el número primo es un número entero positivo mayor que 1 que tiene exactamente dos factores, 1 y el número mismo. Los primeros números primos son 2, 3, 5, 7, 11, 13, 17, 19, 23. . .
Nota: 1 no es primo ni compuesto. El resto de los números, excepto el 1, se clasifican en números primos y compuestos.

números primos
Algunos datos interesantes sobre los números primos:
- Excepto 2 que es el más pequeño número primo y el único número primo par, todos los números primos son números impares.
- Todo número primo se puede representar en forma de 6norte + 1 o 6n – 1 excepto los números primos 2 y 3 , donde n es cualquier número natural.
- 2 y 3 Sólo hay dos números naturales consecutivos que son primos.
- Conjetura de Goldbach: Todo número par mayor que 2 se puede expresar como la suma de dos números primos.
- Teorema de Wilson : El teorema de Wilson establece que un número natural p> 1 es un número primo si y sólo si
(página – 1) ! ≡ -1 contra p
O,
(página – 1) ! ≡ (p-1) mod p
- El pequeño teorema de Fermat : Si n es un número primo, entonces para cada a, 1 ≤ a
an-1≡ 1 (mód n)
O,
an-1% norte = 1
- Teorema de los números primos : La probabilidad de que un número n dado, elegido al azar, sea primo es inversamente proporcional a su número de dígitos, o al logaritmo de n.
- La conjetura de Lemoine : Cualquier número entero impar mayor que 5 se puede expresar como la suma de un primo impar (todos los primos distintos de 2 son impares) y un semiprimo par. Un número semiprimo es el producto de dos números primos. Esto se llama conjetura de Lemoine.
Propiedades de los números primos:
- Todo número mayor que 1 se puede dividir por al menos un número primo.
- Todo número entero positivo par mayor que 2 se puede expresar como la suma de dos números primos.
- Excepto 2, todos los demás números primos son impares. En otras palabras, podemos decir que 2 es el único número primo par.
- Dos números primos siempre son coprimos entre sí.
- Cada número compuesto se puede descomponer en factores primos e individualmente, todos ellos son únicos por naturaleza.
Números primos y números coprimos:
Es importante distinguir entre números primos y números coprimos . A continuación se enumeran las diferencias entre números primos y coprimos.
- Los números coprimos siempre se consideran un par, mientras que un número primo es un número único.
- Los números coprimos son números que no tienen factor común excepto 1. Por el contrario, los números primos no tienen tal condición.
- Un número coprimo puede ser primo o compuesto, pero su máximo común divisor (MCD) siempre debe ser 1. A diferencia de los números compuestos, los números primos solo tienen dos factores, 1 y el número mismo.
- Ejemplo de coprincipal: 13 y 15 son coprimos. Los factores de 13 son 1 y 13 y los factores de 15 son 1, 3 y 5. Podemos ver que tienen solo 1 como factor común, por lo tanto, son números coprimos.
- Ejemplo de prima: Algunos ejemplos de números primos son 2, 3, 5, 7 y 11, etc.
¿Cómo comprobar si un número es Prime o no?
Enfoque ingenuo: El enfoque ingenuo es
Itere de 2 a (n-1) y verifique si algún número en este rango se divide norte . si el numero se divide norte , entonces no es un número primo.
Complejidad del tiempo: EN)
Espacio Auxiliar: O(1)
Enfoque ingenuo (recursivo): La recursividad también se puede utilizar para comprobar si un número entre 2 a n – 1 divide n. Si encontramos algún número que divida, devolvemos falso.
A continuación se muestra la implementación de la idea anterior:
C++
// C++ program to check whether a number> // is prime or not using recursion> #include> using> namespace> std;> > // function check whether a number> // is prime or not> bool> isPrime(> int> n)> {> > static> int> i = 2;> > > // corner cases> > if> (n == 0 || n == 1) {> > return> false> ;> > }> > > // Checking Prime> > if> (n == i)> > return> true> ;> > > // base cases> > if> (n % i == 0) {> > return> false> ;> > }> > i++;> > return> isPrime(n);> }> > // Driver Code> int> main()> {> > > isPrime(35) ? cout <<> ' true
'> : cout <<> ' false
'> ;> > return> 0;> }> > // This code is contributed by yashbeersingh42> |
>
>
Java
// Java program to check whether a number> // is prime or not using recursion> import> java.io.*;> > class> GFG {> > > static> int> i => 2> ;> > > // Function check whether a number> > // is prime or not> > public> static> boolean> isPrime(> int> n)> > {> > > // Corner cases> > if> (n ==> 0> || n ==> 1> ) {> > return> false> ;> > }> > > // Checking Prime> > if> (n == i)> > return> true> ;> > > // Base cases> > if> (n % i ==> 0> ) {> > return> false> ;> > }> > i++;> > return> isPrime(n);> > }> > > // Driver Code> > public> static> void> main(String[] args)> > {> > if> (isPrime(> 35> )) {> > System.out.println(> 'true'> );> > }> > else> {> > System.out.println(> 'false'> );> > }> > }> }> > // This code is contributed by divyeshrabadiya07> |
>
>
Python3
# Python3 program to check whether a number> # is prime or not using recursion> > # Function check whether a number> # is prime or not> > > def> isPrime(n, i):> > > # Corner cases> > if> (n> => => 0> or> n> => => 1> ):> > return> False> > > # Checking Prime> > if> (n> => => i):> > return> True> > > # Base cases> > if> (n> %> i> => => 0> ):> > return> False> > > i> +> => 1> > > return> isPrime(n, i)> > > # Driver Code> if> (isPrime(> 35> ,> 2> )):> > print> (> 'true'> )> else> :> > print> (> 'false'> )> > # This code is contributed by bunnyram19> |
>
>
C#
// C# program to check whether a number> // is prime or not using recursion> using> System;> class> GFG {> > > static> int> i = 2;> > > // function check whether a number> > // is prime or not> > static> bool> isPrime(> int> n)> > {> > > // corner cases> > if> (n == 0 || n == 1) {> > return> false> ;> > }> > > // Checking Prime> > if> (n == i)> > return> true> ;> > > // base cases> > if> (n % i == 0) {> > return> false> ;> > }> > i++;> > return> isPrime(n);> > }> > > static> void> Main()> > {> > if> (isPrime(35)) {> > Console.WriteLine(> 'true'> );> > }> > else> {> > Console.WriteLine(> 'false'> );> > }> > }> }> > // This code is contributed by divyesh072019> |
>
>
JavaScript
> > // JavaScript program to check whether a number> > // is prime or not using recursion> > > // function check whether a number> > // is prime or not> > var> i = 2;> > > function> isPrime(n) {> > > // corner cases> > if> (n == 0 || n == 1) {> > return> false> ;> > }> > > // Checking Prime> > if> (n == i)> return> true> ;> > > // base cases> > if> (n % i == 0) {> > return> false> ;> > }> > i++;> > return> isPrime(n);> > }> > > // Driver Code> > > isPrime(35) ? document.write(> ' true
'> ) : document.write(> ' false
'> );> > > // This code is contributed by rdtank.> > > |
montón y clasificación de montón
>
>Producción
false>
Complejidad del tiempo: EN)
Espacio Auxiliar: O(N) si consideramos la pila de recursividad. De lo contrario, es O(1).
Enfoque eficiente: Una solución eficiente es:
Iterar a través de todos los números de 2 a raíz cuadrada de norte y para cada número verifique si divide a n [porque si un número se expresa como norte = xy y cualquiera de los x o y es mayor que la raíz de n, el otro debe ser menor que el valor de la raíz]. Si encontramos algún número que divida, devolvemos falso.
A continuación se muestra la implementación:
C++14
// A school method based C++ program to> // check if a number is prime> #include> using> namespace> std;> > // Function check whether a number> // is prime or not> bool> isPrime(> int> n)> {> > // Corner case> > if> (n <= 1)> > return> false> ;> > > // Check from 2 to square root of n> > for> (> int> i = 2; i <=> sqrt> (n); i++)> > if> (n % i == 0)> > return> false> ;> > > return> true> ;> }> > // Driver Code> int> main()> {> > isPrime(11) ? cout <<> 'true
'> : cout <<> 'false
'> ;> > return> 0;> }> |
>
>
Java
// A school method based Java program to> // check if a number is prime> import> java.lang.*;> import> java.util.*;> > class> GFG {> > > // Check for number prime or not> > static> boolean> isPrime(> int> n)> > {> > > // Check if number is less than> > // equal to 1> > if> (n <=> 1> )> > return> false> ;> > > // Check if number is 2> > else> if> (n ==> 2> )> > return> true> ;> > > // Check if n is a multiple of 2> > else> if> (n %> 2> ==> 0> )> > return> false> ;> > > // If not, then just check the odds> > for> (> int> i => 3> ; i <= Math.sqrt(n); i +=> 2> ) {> > if> (n % i ==> 0> )> > return> false> ;> > }> > return> true> ;> > }> > > // Driver code> > public> static> void> main(String[] args)> > {> > if> (isPrime(> 19> ))> > System.out.println(> 'true'> );> > > else> > System.out.println(> 'false'> );> > }> }> > // This code is contributed by Ronak Bhensdadia> |
>
>
Python3
# A school method based Python3 program> # to check if a number is prime> > > # import sqrt from math module> from> math> import> sqrt> > > > # Function check whether a number> # is prime or not> def> isPrime(n):> > > # Corner case> > if> (n <> => 1> ):> > return> False> > > # Check from 2 to sqrt(n)> > for> i> in> range> (> 2> ,> int> (sqrt(n))> +> 1> ):> > if> (n> %> i> => => 0> ):> > return> False> > > return> True> > > # Driver Code> if> __name__> => => '__main__'> :> > if> isPrime(> 11> ):> > print> (> 'true'> )> > else> :> > print> (> 'false'> )> > # This code is contributed by Sachin Bisht> |
>
>
C#
// A school method based C# program to> // check if a number is prime> using> System;> > class> GFG {> > > // Function check whether a> > // number is prime or not> > static> bool> isPrime(> int> n)> > {> > // Corner case> > if> (n <= 1)> > return> false> ;> > > // Check from 2 to sqrt(n)> > for> (> int> i = 2; i <= Math.Sqrt(n); i++)> > if> (n % i == 0)> > return> false> ;> > > return> true> ;> > }> > > // Driver Code> > static> void> Main()> > {> > if> (isPrime(11))> > Console.Write(> 'true'> );> > > else> > Console.Write(> 'false'> );> > }> }> > // This code is contributed by Sam007> |
>
>
JavaScript
lista de matrices en java
// A school method based Javascript program to> // check if a number is prime> > > // Function check whether a number> // is prime or not> function> isPrime(n)> {> > // Corner case> > if> (n <= 1)> > return> false> ;> > > // Check from 2 to n-1> > for> (let i = 2; i if (n % i == 0) return false; return true; } // Driver Code isPrime(11) ? console.log(' true') : console.log(' false'); // This code is contributed by Mayank Tyagi> |
>
>
PHP
// A school method based PHP program to // check if a number is prime // Function check whether a number // is prime or not function isPrime($n) { // Corner case if ($n <= 1) return false; // Check from 2 to n-1 for ($i = 2; $i <$n; $i++) if ($n % $i == 0) return false; return true; } // Driver Code if(isPrime(11)) echo('true'); else echo('false'); // This code is contributed by Ajit. ?>> |
>
>Producción
true>
Complejidad del tiempo: O(sqrt(n))
Espacio auxiliar: O(1)
Otro enfoque eficiente: Para comprobar si el número es primo o no, siga la siguiente idea:
Nos ocuparemos de algunos números como 1, 2, 3 y los números que son divisibles por 2 y 3 en casos separados y para los números restantes. Itere de 5 a sqrt(n) y verifique en cada iteración si (ese valor) o (ese valor + 2) divide n o no e incrementa el valor en 6 [porque cualquier número primo se puede expresar como 6n+1 o 6n-1 ]. Si encontramos algún número que divida, devolvemos falso.
A continuación se muestra la implementación de la idea anterior:
C++
// A school method based C++ program to> // check if a number is prime> #include> using> namespace> std;> > // Function check whether a number> // is prime or not> bool> isPrime(> int> n)> > > // Driver Code> int> main()> {> > isPrime(11) ? cout <<> 'true
'> : cout <<> 'false
'> ;> > return> 0;> }> // This code is contributed by Suruchi kumari> |
>
>
C
// A school method based C program to> // check if a number is prime> #include> #include> > // Function check whether a number> // is prime or not> int> isPrime(> int> n)> n % 3 == 0)> > return> 0;> > // Check from 5 to square root of n> > // Iterate i by (i+6)> > for> (> int> i = 5; i * i <= n; i = i + 6)> > if> (n % i == 0> > // Driver Code> int> main()> {> > if> (isPrime(11) == 1)> > printf> (> 'true
'> );> > else> > printf> (> 'false
'> );> > return> 0;> }> // This code is contributed by Suruchi Kumari> |
>
>
Java
// Java program to check whether a number> import> java.lang.*;> import> java.util.*;> > class> GFG {> > > // Function check whether a number> > // is prime or not> > public> static> boolean> isPrime(> int> n)> > > > if> (n <=> 1> )> > return> false> ;> > > // Check if n=2 or n=3> > if> (n ==> 2> > > > // Driver Code> > public> static> void> main(String[] args)> > {> > if> (isPrime(> 11> )) {> > System.out.println(> 'true'> );> > }> > else> {> > System.out.println(> 'false'> );> > }> > }> }> > // This code is contributed by Sayan Chatterjee> |
>
>
Python3
import> math> > def> is_prime(n:> int> )> -> >> bool> :> > > # Check if n=1 or n=0> > if> n <> => 1> :> > return> 'false'> > > # Check if n=2 or n=3> > if> n> => => 2> or> n> => => 3> :> > return> 'true'> > > # Check whether n is divisible by 2 or 3> > if> n> %> 2> => => 0> or> n> %> 3> => => 0> :> > return> 'false'> > > # Check from 5 to square root of n> > # Iterate i by (i+6)> > for> i> in> range> (> 5> ,> int> (math.sqrt(n))> +> 1> ,> 6> ):> > if> n> %> i> => => 0> or> n> %> (i> +> 2> )> => => 0> :> > return> 'false'> > > return> 'true'> > if> __name__> => => '__main__'> :> > print> (is_prime(> 11> ))> |
>
>
C#
// C# program to check whether a number> using> System;> class> GFG {> > > // Function check whether a number> > // is prime or not> > public> static> bool> isPrime(> int> n)> > > > > // Driver Code> > public> static> void> Main(String[] args)> > {> > if> (isPrime(11)) {> > Console.WriteLine(> 'true'> );> > }> > else> {> > Console.WriteLine(> 'false'> );> > }> > }> }> > // This code is contributed by Abhijeet> // Kumar(abhijeet_19403)> |
>
>
JavaScript
los primeros mukers
// A school method based JS program to> // check if a number is prime> > > // Function check whether a number> // is prime or not> function> isPrime(n)> n % (i + 2) == 0)> > return> false> ;> > > return> true> ;> > > // Driver Code> isPrime(11) ? console.log(> 'true'> ) : console.log(> 'false'> );> > > // This code is contributed by phasing17> |
>
>Producción
true>
Complejidad del tiempo: O(sqrt(n))
Espacio auxiliar: O(1)
Soluciones eficientes
- Prueba de primalidad | Conjunto 1 (Introducción y Método Escolar)
- Prueba de primalidad | Conjunto 2 (Método Fermat)
- Prueba de primalidad | Conjunto 3 (Miller-Rabin)
- Prueba de primalidad | Serie 4 (Solovay-Strassen)
- Prueba de primalidad de Lucas
Algoritmos para encontrar todos los números primos menores que N.
- Tamiz de Eratóstenes
- Tamiz de Eratóstenes en complejidad temporal 0(n)
- Tamiz segmentado
- Tamiz de Sundaram
- Tamiz bit a bit
- Artículos recientes sobre Sieve!
Más problemas relacionados con el número primo
- Encuentra dos números primos distintos con a producto dado
- Imprime todos los números primos menores o iguales a N
- Programa recursivo para números primos.
- Encuentra dos números primos con a suma dada
- Encuentre el dígito más alto en números primos en un rango
- Factorización prima usando Sieve O (log n) para múltiples consultas
- Programa para imprimir todos los factores primos de un número dado
- Factor mínimo primo de números hasta n
- Factores primos del MCM de elementos de una matriz – techcodeview.com
- Programa para la conjetura de Goldbach
- Números primos y Fibonacci
- Número compuesto
- ¡Artículos recientes sobre números primos!