Last active
December 28, 2015 09:29
-
-
Save gcorreaq/7479339 to your computer and use it in GitHub Desktop.
Pequeña función para encontrar números primos en un intervalo dado, incluyendo ambos extremos.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def verifica_primo(menor, mayor): | |
# Guardaremos los numeros primos en una lista | |
primos = [] | |
for termino in xrange(menor, mayor + 1): | |
divisores = 0 | |
# Aca hay un truco: si el termino es divisible por cualquier numero | |
# entre 2 y el (termino - 1), entonces no es primo porque tiene mas de | |
# un divisor (aparte de 1 y de si mismo) | |
for divisor in xrange(2, termino): | |
if (termino % divisor) == 0: | |
# Divide a termino, no seguimos buscando | |
break | |
else: | |
# Aca llegamos solo cuando recorrimos todo el intervalo y no encontramos | |
# ningun divisor, por lo que el numero es primo | |
primos.append(termino) | |
# Esto comprueba si la lista no esta vacia | |
if primos: | |
print "{cant} primos en el intervalo [{menor}, {mayor}]: {primos}".format( | |
cant=len(primos), | |
menor=menor, | |
mayor=mayor, | |
primos=primos) | |
else: | |
print "El intervalo [{menor}, {mayor}] no posee numeros primos.".format( | |
menor=menor, | |
mayor=mayor) | |
if __name__ == '__main__': | |
# Un truco para entrar al while | |
menor = 1 | |
mayor = 0 | |
while mayor < menor: | |
menor = int(raw_input("Menor: ")) | |
mayor = int(raw_input("Mayor: ")) | |
if mayor < menor: | |
print "Input incorrecto" | |
verifica_primo(menor, mayor) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment