nという数値が与えられたとき、n番目の素数を求めましょう。
最初の6つの素数、2、3、5、7、11、13を並べてみると、6番目の素数が13であることがわかります。
もし使っているプログラミング言語の標準ライブラリに、素数を扱うためのメソッドが用意されていても、それらは存在しないものとして、自分で実装してみましょう。
ときには例外を発生させる必要があります。そのときは、エラーの原因を示す意味のあるエラーメッセージを必ず含めるようにしましょう。こうするとコードが読みやすくなり、デバッグにも大きく役立ちます。エラーの原因がある特定の型だとわかっている場合は、組み込みのエラー型のいずれかを発生させることもできますが、その場合も意味のあるメッセージを含めるようにしましょう。
この演習では、prime()関数が不正な入力を受け取ったときに、raise文を使ってValueErrorを「投げる」必要があります。この演習は_正の_数値だけを扱うので、1未満の数値はすべて不正な入力です。テストが通るのは、exceptionをraiseし、それにメッセージを添えた場合だけです。
メッセージ付きでValueErrorを発生させるには、メッセージをexception型の引数として書きます。
# when the prime function receives malformed input
raise ValueError('there is no zeroth prime')