Étant donné un nombre n, détermine quel est le n-ième nombre premier.
Si on liste les six premiers nombres premiers : 2, 3, 5, 7, 11 et 13, on peut voir que le 6e nombre premier est 13.
Si ton langage fournit des méthodes dans la bibliothèque standard pour traiter les nombres premiers, fais comme si elles n'existaient pas et implémente-les toi-même.
Il est parfois nécessaire de lever une exception. Dans ce cas, tu dois toujours inclure un message d'erreur explicite pour indiquer l'origine de l'erreur. Cela rend le code plus lisible et facilite grandement le débogage. Dans les situations où tu sais que l'erreur sera d'un type précis, tu peux choisir de lever l'un des types d'erreur intégrés, mais tu dois quand même inclure un message explicite.
Cet exercice demande en particulier d'utiliser l'instruction raise pour « lever » une ValueError quand la fonction prime() reçoit une entrée malformée. Comme cet exercice ne traite que de nombres positifs, tout nombre < 1 est malformé. Les tests ne passeront que si tu raise l'exception et que tu l'accompagnes d'un message.
Pour lever une ValueError avec un message, passe le message en argument du type exception :
# when the prime function receives malformed input
raise ValueError('there is no zeroth prime')
Inscris-toi sur Exercism pour apprendre et maîtriser Python avec 17 concepts146 exercices, et un vrai mentorat humain, le tout gratuitement.