def est_premier(n: int) -> bool: if n < 2: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True def nombres_premiers_jusqu_a(limite: int) -> list[int]: premiers = [] for n in range(2, limite + 1): if est_premier(n): premiers.append(n) return premiers def main(): limite_input = input("Saisir la limite supérieure pour la recherche de nombres premiers (par défaut 1000) : ").strip() if limite_input == '': limite = 1000 else: try: limite = int(limite_input) if limite < 2: print("La limite doit être au moins 2. Utilisation de 1000.") limite = 1000 except ValueError: print("Entrée invalide. Utilisation de 1000.") limite = 1000 premiers = nombres_premiers_jusqu_a(limite) print(f"\nNombres premiers jusqu'à {limite} :") print(premiers) print(f"\nNombre total de nombres premiers : {len(premiers)}") if len(premiers) >= 1000: print(f"Le 1000ème nombre premier est : {premiers[999]}") else: print("La limite saisie ne permet pas d’atteindre le 1000ème nombre premier.") if __name__ == "__main__": main()