Saber si un numero es primo

¿Como harian para saber si un numero n es primo??

A mi me han propuesto: resolver la congruencia x^2 = 1 mod n

¿Pero que significado tiene esto?Es decir, porque si se da esta relación n es primo??

Comentarios

Selecciona tu forma preferida de visualizar los comentarios y pulsa el botón para guardar tus preferencias entre visitas (sólo si eres usuario registrado).

Una recetilla en Python

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/410662

No buscaba un programa

Hola,
la cosa es que el objetivo no era hacer un programa que me devolviera si un numero es primo.
El problema es que me gustaría saber porque si ocurre lo que arriba comento: x^2 = 1 mod n ; n entonces es primo.
Además me gustaría que alguien me dijese como resolver esta congruencia.

Para poder resolverla, la única manera es que ocurra que x = x^(-1), ¿no? Y para que pase eso, ¿¿que tiene que ocurrir??

Muchas gracias por ayudar

Uno con ganas de aprender ;)

Pero no es un programa...

Es una respuesta ;)

Pues no entiendo la respuesta

No veo donde esta contestada mi pregunta en el codigo.

def isprime(aNumber):
'''return True if the number is prime, false otherwise'''
if aNumber < 2: return False
if aNumber == 2: return True
if (( aNumber / 2 ) * 2 == aNumber) : return False
else:
klist = primes(int(math.sqrt(aNumber+1)))
for k in klist[1:]:
if (( aNumber / k ) * k == aNumber ): return False
return True

Si me puedes explicar en que parte...

Gracias.

Uno con ganas de aprender ;)

No entiendo bien

3^2 mod 8 = 1, siendo 8 número no primo.

Que es la x?

En ningún momento dices que es la x.

Lo único que te puedo decir es que si p ES PRIMO entonces:
b^(p-1)=1(mod p) para todo b
(pequeño teorema de Fermat???).
Pero no es cierto el reciproco.Es decir, si encuentras algún b que no cumpla la congruencia tendras que p no es primo. Pero, que todo b lo cumpla no significa que p sea primo. Ahora mismo no me acuerdo de los detalles pero busca información sobre el pequeño teorema de Fermat , sobre pseudoprimos y sobre números de Carmichael.

Saber si un numero es primo

Todo numero primo mayor que tres es igual a un multiplo de seis aumentado o disminuido en una unidad. Ademas, todo numero primo distinto de dos termina en uno, tres, siete o nueve. Ademas, si un numero cualquiera se divide por un numero primo menor que el y arroja un resultado exacto, no es primo. Por el contrario, si el resultado no es exacto y al mismo tiempo el cuociente es menor que el divisor, el numero es primo. Todo eso se debe combinar con los caracteres basicos de divisibilidad por tres, siete, nueve y once y tendras una prueba de primalidad cuya probabilidad de error es proporcional al orden de magnitud del numero.
Como puedes ver, lo puse todo en español para que tu hagas la traduccion a algebra y asi lo puedas comprender cabalmente.

Os muestro exactamente lo que me pidieron hacer

En realidad, lo que os he propuesto es un ejercicio que me mandaron hacer y decía exactamente lo siguiente:

Un test de primalidad podría consistir en saber si el entero 'n' es o no primo por la simple resolución de la congruencia:

x^2 = 1 mod n

¿Qué valores de x daría la pista para saber si el número elegido 'n' es primo? Hacer una prueba con el anterior algoritmo para saber si los numeros n=7 y n=8 son primos no par

Uno con ganas de aprender ;)

Mi pobre aportación

La verdad es que tampoco acabo de comprender muy bien la x. La ecuación que has puesto es x*x + y*n = 1. Me recuerda al algoritmo de Euclides, pero es a lo más que llego (no soy matemático)

Lo que si sé es que para comprobar que un número es primo sólo hace falta comprobar sus posibles divisores desde 2 hasta n^(1/2) (o sea, sqrt(n)).

Sólo añadir también que hasta la fecha - que yo sepa -, no existe una fórmula matemática explícita para resolver que un número sea primo o compuesto, sino tests que dan cierta probabilidad, exceptuando la prueba evidente claro (dividir sucesivamente...).

Creo recordar que hace dos a

Creo recordar que hace dos años o así en una univerdad de ¿Israel? sacaron un método nuevo para saber si un número era primo o no sin tener que dividirlo hasta la raiz cuadrada.

Había implementaciones en software y el algoritmo del método.

Tampoco profundicé, así que solo puedo comentarlo de oidas.

Respecto a la ecuación de este post, ya solo por salir de dudas, a ver si alguien entiende algo.

Me suena al algoritmo de primalidad de Rabit-Miller.
Si existe un raiz cuadrada no trivial de de 1 mod n, entonces n no es primo.

Desconozco el algoritmo pero, haciendo pruebas

Desconozco el algoritmo pero, haciendo pruebas creo que estas en lo cierto, para un valor de n=21, tenemos en la parte izquierda,0.16 cuya raiz es 0.4. Número no primo-->raiz trivial. Aunque no se cumple con todos los numeros primos(p.ej n=27-->0.19, raíz no trivial). El algortimo se cumple para alguno valores(4,10,12,13,..) y para otros no(6,8,9,..).
Espero no haberme equivocado y poder ayudar en algo.

Algoritmo

Lo que si existe es un algoritmo que determina la "primalidad" de un numero en un tiempo polinómico, es el llamado algoritmo AKS.

http://www.cse.iitk.ac.in/news/primality.html

Mersenne

Los números que cumplen esa condición son llamados "primos de Mersenne". Muchísima más información en: www.mersenne.org

Explicación (x^2 = 1 (mod n))

Investigando un poco he encontrado una posible explicación al tema planteado. En concreto, ver el ejercicio 15 de la sección 2.6 del libro "Discrete Mathematics and its Applications" Fifth Ed., de K.H. Rosen, Ed. McGraw-Hill. (Ver también el ejercicio 53 de la misma sección).

Según la citada referencia, si n es primo, las únicas soluciones de x^2 = 1 (mod n) son los enteros x tales que: x = 1 (mod n) ó x = -1 (mod n).

La demostración es como sigue: x^2 = 1 (mod n) ==> x^2 - 1 = 0 (mod n) ==> (x+1)(x-1) = 0 (mod n) ==> n divide a (x+1)(x-1). Si n divide a (x+1)(x-1) y n es primo ==> n divide a (x+1) ó n divide a (x-1) ==> x+1 = 0 (mod n) ó x-1 = 0 (mod n) ==> x = -1 (mod n) ó x = 1 (mod n)

Por otra parte, si existiera un x tal que no cumpliese x = 1 (mod n) y tampoco x = -1 (mod n), pero verificase la congruencia que tenemos x^2 = 1 (mod n), entonces n no puede ser primo, pues estaríamos negando la conclusión (que las únicas soluciones de la congruencia son x = 1 (mod n) y x = -1 (mod n)) y eso implica la negación de la premisa (n primo).

Nota sobre los primos de Mersenne: son aquellos números primos de la forma 2^p - 1, siendo p primo también (me remito también al citado libro).

Bravo, te felicito!!!

Muchas gracias 'El Nigromante',la verdad es que me ha dado mucha alegría ver que has encontrado la solución :D porque la verdad es que pensaba que ya el debate se iba a quedar en el olvido.

Uno con ganas de aprender ;)

Pregunta

Es el número 2 un número primo? Todos los números pares no son primos, por ende no es primo. O me equivoco?

Definición de número primo (según yo)

No generalicemos. Ningún número par es primo, *excepto* el número 2. El 2 es la excepción a la regla. (Y no sólo a ésta, piensa que 2+2 = 2*2 = 2^2 = 4, pero no es la idea :-) )

Entiendo que número primo se define como "un número natural divisible sin resto sólo por sí mismo y por la unidad."
Entonces, según esta definición, el 2 es número primo. Así, el 2 es el único número par que es primo.

En efecto: 2/1=2, resto=0; 2/2=1, resto=0. QED.

Espero que te sirva como "demostración"

JRBA

Si es primo

el dos si que es primo, 1 ,2 ,3 ,5 etc son primos.

nop ese nop

todo lo anterior es correcto!!
pero el 1 no es un numero primo
solo el 2 y de ahi en adelante los impares

El conjunto de los números primos es un subconjunto de los números naturales que engloba a todos los elementos de este conjunto mayores que 1 que son divisibles únicamente por sí mismos y por la unidad.

Los números primos, menores que cien, son:

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 y 97.

gracias
=)

a ver si es correcto...

dado un numero x, y un n que toma valores incrementales desde 2 hasta x-1, si x mod n <> 0, en todos los valores de n, es primo.

billy.ar

programa conrespecto a esto

y como crearia un programa que al entrarle un numero cualquiera me diga si es primo o no

Significado

que significa mod

Opinar

Los comentarios publicados en este sitio expresan sólo la opinión de su autor, quien será el único responsable de los mismos. La publicación de cualquier comentario no supone en absoluto la conformidad del responsable de este sitio con su contenido.

Como norma general, en este sitio no se publican comentarios que incluyan datos personales, ni direcciones de correo, ni ninguna otra forma de establecer contactos privados o comerciales, así como comentarios que no aportan nada, fuera de tema o que no se ajustan a la netiqueta, la ortografía o la educación.

Para poder enviar tus comentarios has de permitir las cookies del sitio.

Por favor, escribe arriba el resultado de la operación planteada. Gracias.
  • Etiquetas HTML permitidas: <a> <em> <strong> <ul> <ol> <li> <p> <u> <br><strike> <blockquote> <div>

Más información sobre las opciones de formato...