>>320
>素数のリストp_1(=2),p_2(=3),p_3(=5),...を作っておいて
1000までの素数リストは
(1:1000)[-outer(2:1000,2:1000)][-1]
このスクリプトなら、for loopを使わない行列計算だから結果がでるのも高速。

一行で完成するのに、なんで31以下の素数リストを列挙する手間をかける必要があるんだ、と思う。

百万以下の素数の数は664579以下であることを示せ、という問題だと、百万の平方根=1000以下の素数のリストが必要になる。