1) Ton programme n'est pas correct quand l'utilisateur entre un nombre entre 0 et 3 (ça va afficher [2,3] alors que ça devrait pas).
2) En cas d'utilisateur qui écrit n'importe quoi, le « int(raw_input()) » peut générer une erreur. Ce n'est pas un bug mais tu peux utiliser une structure de type « try: (...) except ValueError: » pour prendre ça en compte.
3) Plutôt que de tester si « a > sqrt(b) » dans un programme, il est plus rapide (et plus sûr) de tester si « a * a > b » ou non.
4) L'idée de tester la division par les nombres premiers déjà connu (plutôt que de boucler sur tous les i² < n) est pas mal, mais si tu veux un algo' plus efficace pour générer des nombres premiers je t'invite à te renseigner sur comment fonctionne le crible d’Ératosthène. Tu pourras aller jusqu'à 10^8 sans aucun problème. Après ça demande un peu plus d'efforts.
|