Después de la clase de Sentencias IF y los bucles WHILE y FOR en Python y Funciones y como depurar (debbugin) en Spyder Anaconda ahora vamos con 2 ejemplos sobre números primos. Si alguien no sabe lo que es un número primo y quiere leer un poco sobre su historia puede visitar este post.
De forma resumida un número primo:
- Es un número natural
- Es mayor que 1
- Son divisibles por sí mismo y por 1
Ejemplos de números primos:
- 3 es un número primo y es divisible por 3 y 1
- 7 es un número primo y es divisible por 7 y 1
- 12 No es un número primo y es divisible por 2, 3, 4, 6 y 1
- 4 No es un número primo y es divisible por 4, 2 y 1
¿Cómo se calcula o determina si un número es primo o no? ¿Cual es el algoritmo que calcula si un número es primo o no?
- Por ejemplo ¿és el número 7 primo?
- Vamos a dividir el número 7 entre 2, 3, 4, 5, 6 y calcularemos el resto de la division
- Si el resto es 0 No es un número primo
- De esta manera podemos ver que en todas las divisiones siempre hay un resto por los que 7 Si es un número primo.
Vamos a ver en python 2 ejemplos de Números primos:
El 1º ejemplo nos dice si el número es primo o no y los divisores que tiene:
numero= int(input("¿Qué número quieres saber si es primo? ")) valor= range(2,numero) contador = 0 for n in valor: if numero % n == 0: contador +=1 print("divisor:", n) if contador > 0 : print("El número no es primo" ) else: print("El nÚmero es primo")
Resultado:
¿Qué número quieres saber si es primo? 6
divisor: 2
divisor: 3
El número no es primo
En el 2º ejemplo vamos a crear la función primo.
def primo(num): if num < 2: #si es menor de 2 no es primo, devolverá Falso return False for i in range(2, num): #un ciclo desde el 2 hasta el num de entrada if num % i == 0: #si el resto da 0 no es primo, devuelve Falso return False return True #de lo contrario devuelve Verdadero print(primo(3))
Resultado:
primo(3)
True
➡ Aprende más de Python con nuestro
Curso de Python para Principiantes:
[…] ➡Ejemplo de Números primos […]
que significa mid?
Hola Diego, a que te refieres con mid?
[…] Curso Python desde 0, 6º clase […]
hola en este curso enseñan diseño grafico?
[…] Curso Python desde 0, 6º clase […]
Saludos. Usé el siguiente código con puros if, else y while. Espero y les sea de ayuda.
”’
El teorema de Wilson dice:
Sea n un número natural.
n es primo sí y sólo sí (n-1)!+1 es múltiplo de n.
”’
#Primer paso: le solicitamos al usuario que ingrese el número que el desee
#Segundo paso: verificamos que el número ingresado sea mayor a 1.
#Tercer paso: si el número ingresado es mayor a 1, verificamos que sea igual a 2.
#Cuarto paso: si el número ingresado no es dos, verificamos que sea par.
#Quinto paso: En caso de no ser par, aplicamos el teorema de Wilson.
”’
EXPLICACIÓN DE LA PARTE DEL TEOREMA DE WHILSON
La parte del while nos ayuda a calcular el (n-1)! donde
n es el número que el usuario desea saber si es primo o no.
El if nos ayuda con la operación (n-1)!+1 ya que si esta
se satisface, entonces, por teorema, sabemos que n es primo.
”’
Numero=int(input(“Ingresa el numero: “))
if Numero>1:
#Inicia if
if Numero==2:
#Inicia el primer if anidado
print(“El numero “, Numero, ” es primo.”)
#Termina el primer if anidado
else:
#Inica el primer else anidado
if Numero%2==0:
#Inicia el segundo if anidado
print(“El numero “,Numero,” no es primo pues es par.”)
#Termina el segundo if anidado
else:
#Inicia el segundo else anidado
Factorial=1
Indicador=Numero
while Indicador>1:
#Inicia el while anidado
Factorial=(Indicador-1)*Factorial
Indicador=Indicador-1
#Termina el while anidado
”’
Inicia el Teorema de Wilson.
”’
if (Factorial+1)%Numero==0:
#Inicia el tercer if anidado
print(“El numero “,Numero,” es primo”)
#Termina el tercer if anidado
else:
#Inicia el tercer else anidado
print(“El numero “,Numero,” no es primo”)
#Termina el tercer else anidado
”’
Termina el Teorema de Wilson.
”’
#Termina el segundo else anidado
#Termina el primer else anidado
#Termina if
else:
print(“El numero que ingresaste “,Numero,” no es primo”)
hola quiero saber como saco el numero primo con las consonantes de un nombre es decir ingresa pedro es 5 entonces el numero es primo
Estimado,
Tengo dudas respecto del código del ejemplo 2 .
Dado que el if num % i == 0 está dentro del for, ¿cómo funciona el return?
Hola Verónica, para implementar una calculadora de números primos en Python, lo primero es saber si dos números son divisibles. Usamos el operador módulo %.
if D%d != 0:
print(“No es divisor”)
El operador módulo nos devuelve el resto de la división entre dos números. Por lo tanto 5%3 es 2. Es decir, si el resto es distinto de cero, decimos que d no es divisor de D.
Para determinar si un número es primo, iteramos todos los números desde 2 hasta nuestro número, comprobando si ese número n puede dividir al nuestro. En el momento en el que encontramos a un divisor, ya sabemos que no es primo y devolvemos False en el return.
Hola, me gustaria saber por qué mi código está mal, ya que al introducir 657, me sale que es primo,
Adjunto el codigo:
def es_primo(numero):
if numero<2:
primo=False
for i in range(2, numero, 1):
if numero%i ==0:
primo=False
else:
primo=True
return primo
podrias implementarlo mostrando los resultados en una grafica con canvas de tkinter?
y con while no se puede
En caso que quiera que me entregue los numero en lista como sería.