Función: Verificar si un número es primo

Publicado por Unknown en 14:48
Una de las funciones que más me gustó del primer semestre era la de verificar si un número es primo. Aquí tenemos una forma de verificar si un número es o no primo.

def verificar_primo(numero):
    rango = range(2,numero)
    if numero == 1:
        return "No es primo"
    elif numero == 2:
        return "Es primo"

    else:
        for elementos in rango:
   
                if numero % elementos == 0:
                   
print "No es primo"
                    break
                else:
                    if elementos == numero - 1:
                        print "Es primo"


Y para probarla tenemos esta otra función que nos devuelve una lista de todos los números hasta el número que le indiquemos y que nos diga si es primo o no.

def tabla_de_primos(numerofinal):
    listanumeros = range(1,numerofinal + 1)
    for elementos in listanumeros:
        print str(elementos) + " (" + verificar_primo(elementos) + ")"


Pero para que esta funcione debemos cambiar los print de la función verificar_primo, por return. De esa forma nos quedarían ambas funciones de la siguiente forma:

# A esta le cambiamos los print por return

def verificar_primo(numero):
    rango = range(2,numero)
    if numero == 1:
        return "No es primo"
    elif numero == 2:
        return "Es primo"


    else:
        for elementos in rango:
   
                if numero % elementos == 0:
                    return
"No es primo"
                    break
                else:
                    if elementos == numero - 1:
                        return "Es primo"



# Esta la dejamos igual
def tabla_de_primos(numerofinal):
    listanumeros = range(1,numerofinal + 1)
    for elementos in listanumeros:
        print str(elementos) + " (" + verificar_primo(elementos) + ")"


Y si llamamos a tabla_de_primos hasta el 100, de esta forma:

tabla_de_primos(100)


Nos devuelve los números del 1 al 100 indicando cuales son primos y cuales no:

1 (Es primo)
2 (Es primo)
3 (Es primo)
4 (No es primo)
5 (Es primo)
6 (No es primo)
7 (Es primo)
8 (No es primo)
9 (No es primo)
10 (No es primo)
11 (Es primo)
12 (No es primo)
13 (Es primo)
14 (No es primo)
15 (No es primo)
16 (No es primo)
17 (Es primo)
18 (No es primo)
19 (Es primo)
20 (No es primo)
21 (No es primo)
22 (No es primo)
23 (Es primo)
24 (No es primo)
25 (No es primo)
26 (No es primo)
27 (No es primo)
28 (No es primo)
29 (Es primo)
30 (No es primo)
31 (Es primo)
32 (No es primo)
33 (No es primo)
34 (No es primo)
35 (No es primo)
36 (No es primo)
37 (Es primo)
38 (No es primo)
39 (No es primo)
40 (No es primo)
41 (Es primo)
42 (No es primo)
43 (Es primo)
44 (No es primo)
45 (No es primo)
46 (No es primo)
47 (Es primo)
48 (No es primo)
49 (No es primo)
50 (No es primo)
51 (No es primo)
52 (No es primo)
53 (Es primo)
54 (No es primo)
55 (No es primo)
56 (No es primo)
57 (No es primo)
58 (No es primo)
59 (Es primo)
60 (No es primo)
61 (Es primo)
62 (No es primo)
63 (No es primo)
64 (No es primo)
65 (No es primo)
66 (No es primo)
67 (Es primo)
68 (No es primo)
69 (No es primo)
70 (No es primo)
71 (Es primo)
72 (No es primo)
73 (Es primo)
74 (No es primo)
75 (No es primo)
76 (No es primo)
77 (No es primo)
78 (No es primo)
79 (Es primo)
80 (No es primo)
81 (No es primo)
82 (No es primo)
83 (Es primo)
84 (No es primo)
85 (No es primo)
86 (No es primo)
87 (No es primo)
88 (No es primo)
89 (Es primo)
90 (No es primo)
91 (No es primo)
92 (No es primo)
93 (No es primo)
94 (No es primo)
95 (No es primo)
96 (No es primo)
97 (Es primo)
98 (No es primo)
99 (No es primo)
100 (No es primo)


Si quisiéramos que nos devolviera una lista con los números primos de un determinado rango sería de la siguiente forma:

def lista_de_primos(numerofinal):
    lista = []
    listanumeros = range(1,numerofinal + 1)
    for elementos in listanumeros:
        if verificar_primo(elementos) ==  "Es primo":
            lista.append(elementos)
    print lista


La llamamos

lista_de_primos(100)

Y nos devuelve

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

Y hay tantas formas de utilizar y ordenar los números primos y no solo los primos sino muchos otros que veremos más adelante.

1 Respuesta a 'Función: Verificar si un número es primo'

  1. Unknown dijo...
    http://python-tec.blogspot.com/2010/07/funcion-verificar-si-un-numero-es-primo.html?showComment=1556055516784#c5372324832056197710'> 23 de abril de 2019, 15:38

    Os mando dos funciones para una lista de primos sin recursiva y con recursiva. Busca primos del 1 al 90 (o cualquier otro que indiqueis)Por si os parece bien

    def EsPrimo(numero):
    i=numero-1
    EsPrimo=True
    while (i>1) & EsPrimo:
    EsPrimo=numero%i!=0
    i-=1
    return (EsPrimo)
    def EsPrimoRec(numero,divisor):
    if (numero/2 < divisor):
    return(True)
    else:
    if (numero%divisor==0):
    return(False)
    else:
    return(EsPrimoRec(numero,divisor+1))
    Primos=[n for n in range(0,90)if EsPrimo(n)]
    PrimosRec=[n for n in range(1,90)if EsPrimoRec(n,2) ]
    print(Primos)
    print (PrimosRec)

     

Publicar un comentario