Código de Python - Determinar si un número es primo o no

Imágen de perfil

Determinar si un número es primo o nográfica de visualizaciones


Python

estrellaestrellaestrellaestrellaestrella(2)
Publicado el 29 de Junio del 2013 por Xavi
22.929 visualizaciones desde el 29 de Junio del 2013. Una media de 133 por semana
Simple función que recibe un número entero entrado por el usuario y determina si ese valor es primo o no.

Versión 1
estrellaestrellaestrellaestrellaestrella(2)

Publicado el 29 de Junio del 2013gráfica de visualizaciones de la versión: Versión 1
22.930 visualizaciones desde el 29 de Junio del 2013. Una media de 133 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
def es_primo(numero):
    """
    Funcion que determina si un numero es primo
    Tiene que recibir el numero entero
    """
    # Para que un numero sea primo, unicamente tiene que dividirse dos veces:
    #   1 - divisible entre 1
    #   2 - divisible entre el mismo
    # En este bucle, empezamos por el dos hasta un numero anterior a el, por lo
    # que si en el bucle, alguna vez se divide el numero, quiere decir que no es
    # primo
    for i in range(2,numero):
        if (numero%i)==0:
            # es divisible
            return False
    return True
 
while True:
    try:
        numero = int(raw_input("inserta un numero (0) salir >> "))
        if numero==0:
            break
        if es_primo(numero):
            print "\nEl numero %s es primo" % numero
        else:
            print "\nEl numero %s NO es primo" % numero
    except:
        print "\nEl numero tiene que ser entero"



Comentarios sobre la versión: Versión 1 (2)

Imágen de perfil
neogurb
14 de Agosto del 2015
estrellaestrellaestrellaestrellaestrella
Una pequeña corrección: realmente no es necesario que el bucle recorra hasta el número anterior. Es suficiente con que recorra hasta la mitad del número que analizamos. A partir de ahí, ya no habrá ningún divisor posible, puesto que el cociente sería menor de dos.
Responder
Juanesga
10 de Febrero del 2016
estrellaestrellaestrellaestrellaestrella
En realidad la función se puede realizar de la siguiente manera:
def es_primo(x):
if x<2:
return False
elif x==2:
return True
else:
for n in range(2,x):
if x%n == 0:
return False
elif(n == x-1):
return True
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s2413