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

Imágen de perfil
Val: 656
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

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


Python

estrellaestrellaestrellaestrellaestrella(16)
Publicado el 29 de Junio del 2013 por Xavi
96.375 visualizaciones desde el 29 de Junio del 2013
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(16)

Publicado el 29 de Junio del 2013gráfica de visualizaciones de la versión: Versión 1
96.382 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 (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
Hace 5d
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
Hace 5d
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

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s2413