
Jaime Roberto
PreguntaHola buenas! traté de hacer un programa que te imprima los números primos desde un cierto rango, el tema es que a medida que la segunda cifra es mas alta no es tan exacto y no me imprime los números 2,3,5 y 7, como puedo mejorarlo? saludos!!
def run(): num1 = int(input("ingrese el primer numero: ")) num2 = int(input("ingrese el segundo numero: ")) for numbers in range(num1, num2 + 1): if numbers == num1 or numbers == num2: continue if numbers % 2 != 0 and numbers % 3 != 0 and numbers % 5 != 0 and numbers % 7 !=0: print(numbers) if __name__ == '__main__': run()

Facundo Nicolás García Martoni
¡Hola Jaime! Está claro por qué ocurre ese comportamiento. Tu programa, en lugar de preguntar si un número no es divisible por todos sus anteriores menos él mismo y el 1, pregunta si un número no es divisible por 2, 3, 5 y 7. Por esta razón, al ser estos números divisibles en sí mismos, jamás van a ser impresos. Y a medida que los números crezcan te vas a encontrar siempre con números que no son primos, ya que no estás haciendo la pregunta correcta en tu condicional. Espero que mi respuesta te aclare un poco el panorama ;)