
Josué Braun
Pregunta¿ Porqué al ejecutar el código me aparecen como no primos el 1 y el 2? 🤔
def es_primo(numero): contador = 0 for i in range(1, numero + 1): if i == 1 or i == numero: continue if numero % i == 0: contador += 1 if contador == 0: return True else: return False def run(): numero = int(input('Escribe un número: ')) if es_primo(numero): print('Es primo') else: print('No es primo') if __name__ == '__main__': run()

Josué Braun
Gracias @alcarosc2

Alvaro Silva Caballero
Por cierto, el número 1 NO es primo, porque solo tiene un divisor. El número 2 es primo pero también es par. De nada.

Alvaro Silva Caballero
Definición de número primo: un número primo es aquél número que es solamente divisible entre 1 y entre si mismo. Ahora bien, el 1 y el 2 son problemáticos de procesar porque representan lo que se llama en ciencias de la informática casos de frontera (edge cases). Casos que requieren un tratamiento especial. El 2 es el único número primo que es par. El 1 es problemático porque la definición de números primos colapsa. 1 es divisible entre 1 y entre si mismo, pero 1 y entre si mismo son iguales, 1. En tu programa necesitas desarrolla más código para tratar esos casos de frontera. Una solución sencilla es inicializar tu lista de números primos en 2 y empezar a determinar si un número primo desde 3, que es primo.