Popular channels

Obtener números primos Python

Les traigo un script muy simple para obtener los números primos hasta cierto límite Python.

Simplemente guardan el script en un archivo llamado ejemplo.py y desde la consola de windows o linux, desde el directorio donde hayan guardado el archivo corren el comando "python ejemplo.py"
[color=#000000][code][/color]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def isprime(n):
    '''chequear si un entero es primo'''
    # chequear que la entrada sea un entero positivo
    n = abs(int(n))
    # 0 y 1 no son primos
    if n < 2:
        return False
    # 2 es el unico primo par
    if n == 2: 
        return True    
    # El resto de pares no son primos
    if not n & 1: 
        return False
    #El rango comienza en 3 y solo necesita subir hasta la raiz cuadrada de n 
    # para todos los impares
    for x in range(3, int(n**0.5)+1, 2):
        if n % x == 0:
            return False
    return True

#Declaramos la lista para guardar el resultado
primos = []
try:
limit = int(raw_input('Ingrese un número: '))
except ValueError:
print "Oops!  No es un número valido.."

#Corremos un  loop para guardar los resultados en primos[]
i = 1
if limit > 0:
while i <= limit:
check = isprime(i)
if check == True:
primos.append(i)
elif check == False:
pass
i = i+1

#Obtenemos el primos mas grande
mayor = primos[len(primos)-1]
print 'Se encontraron %d numeros primos' % (len(primos))
print 'El mas alto es %d y contiene %d digitos' %(mayor,len(str(mayor)))

print_all = raw_input('Imprimir resultados (s/n)')
if print_all == str('s'):
i = 1
for x in primos:
print i,'->',x
i=i+1
elif print_all == str('n'):
pass
else:
pass

[/code]
Los resultados son algo así:
[email protected]:/home/sms# python primos.py
Ingrese un número: 13
Se encontraron 5 numeros primos
El mas alto es 13 y contiene 2 digitos
Imprimir resultados (s/n)s
1 -> 2
2 -> 3
3 -> 5
4 -> 7
5 -> 11


Si quieren ejecutar el código bajen el único archivo del siguiente repositorio: https://github.com/codigoTaringa/primos ya que Taringa modifica las identaciones al postear el código.
0
0
0
0No comments yet