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

Versión 1 - Python 2.x
estrellaestrellaestrellaestrellaestrella(16)

Actualizado el 11 de Marzo del 2020 (Publicado el 29 de Junio del 2013)gráfica de visualizaciones de la versión: Versión 1 - Python 2.x
110.790 visualizaciones desde el 29 de Junio del 2013
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 - Python 2.x (16)

Imágen de perfil
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
camava
15 de Noviembre del 2017
estrellaestrellaestrellaestrellaestrella
hola neogurb...en realidad solo debe hacer el bucle hasta el cociente(la parte entera del cociente) entre el numero a determinar si es primo y el primo conocido mas grande que sea inferior al numero a consultar...lo he probado mucho,pues apenas empiezo con la programación...saludos
Responder
Gregorio Samsa
10 de Mayo del 2019
estrellaestrellaestrellaestrellaestrella
Bastaría con que se probara hasta el entero más cercano a la raíz cuadrada del número en cuestión..
Responder
Ivan
27 de Julio del 2019
estrellaestrellaestrellaestrellaestrella
Funcionó bárbaro, creo que es el método más eficiente, por lo menos no encontré otro :)
Responder
jhoan carvajal
25 de Agosto del 2019
estrellaestrellaestrellaestrellaestrella
para sacar números primos solo es poner esto: dale like :)

num = int(input('digite un numero: ')

if ((num ** (num - 1)) % num) ==1 or num == 2:
print('el numero es primo')
else:
print('el numero No es primo')
Responder
jhoan carvajal
25 de Agosto del 2019
estrellaestrellaestrellaestrellaestrella
PERDON ES ASÍ: jajaja

num = int(input('digite un numero: '))

if ((2** (num - 1)) % num) == 1 or num == 2:
print('el numero es primo')
else:
print('el numero No es primo')
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
ramon
13 de Marzo del 2018
estrellaestrellaestrellaestrellaestrella
muy bien, podria hacer lo mismo con widgets
Responder
Jorge Ramón F.
2 de Marzo del 2019
estrellaestrellaestrellaestrellaestrella
#!/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(input("inserta un numero (0) salir >> "))
if numero==0:
break
if es_primo(numero):
print ("\n""El numero", numero, "es primo") % numero
else:
print ("\n""El numero", numero, "NO es primo") % numero
except:
print ("\n""El numero tiene que ser entero")

Así quedaría para Python 3...
Responder
Sabina Pia
13 de Abril del 2019
estrellaestrellaestrellaestrellaestrella
n=int(input("Ingrese:"))
if n==2 and n==3 and n==5 and n==7:
print("primo")
elif n>7 and n%2!=0 and n%3!=0 and n%5!=0 and n%7!=0:
print("primo")
else:
print("no es primo")
Responder
Ricardo
26 de Abril del 2019
estrellaestrellaestrellaestrellaestrella
Gracias por tu aportación, ahora podré obtener una gran calificación
Responder
Lucas
28 de Mayo del 2019
estrellaestrellaestrellaestrellaestrella
No sirve esta forma porque el 121 por ejemplo no es primo pero tampoco es divisible por ninguno de los numero mencionados, pero si es divisible por 11 que si es primo.
Responder
Diego Ramirez
15 de Octubre del 2019
estrellaestrellaestrellaestrellaestrella
en vez de and en el primer if, debes usar or, sino estará esperando que cumplas todas las condiciones
Responder
11 de Junio del 2019
estrellaestrellaestrellaestrellaestrella
Otra forma de hacerlo, es simplemente comprobando el resultado del resto de la división, si da cero es que se trata de un número primo, si no diera cero, no es primo.

def primo(numero):

if(numero%2==0):
print("Es primo")
else:
print("No es primo")


salir=False

while (salir!=True):

numero=int(input("Introduce un número >> "))
if(int(numero)!=0):
primo(numero)
else:
salir=True
Responder
Mathias
12 de Noviembre del 2019
estrellaestrellaestrellaestrellaestrella
Dejo dos formas de resolverlo ! Espero que les sirva
retorna True si es primo, False si no es primo.
def primo(num):
contador=0
for i in range(1,num,1):
if suma<2:
if num%i==0:
contador+=1
a=True
else:
a=False
return a

def esPrimo(n):
divisores = [ divi for divi in range(1, n+1) if n%divi==0]
return len(divisores) <= 2
print(esPrimo(67))
Responder
Mathias
12 de Noviembre del 2019
estrellaestrellaestrellaestrellaestrella
Corrigo el range:
for i in range(1,num):

y la ultima linea "print(esPrimo(67))" está de mas, es para probar la función
Responder

Comentar la versión: Versión 1 - Python 2.x

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

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

Versión 1 - Python 3.x

Publicado el 11 de Marzo del 2020gráfica de visualizaciones de la versión: Versión 1 - Python 3.x
4.622 visualizaciones desde el 11 de Marzo del 2020

Versión 2 - Python 3 mas optima
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 21 de Marzo del 2020gráfica de visualizaciones de la versión: Versión 2 - Python 3 mas optima
59.059 visualizaciones desde el 21 de Marzo del 2020
http://lwp-l.com/s2413