6

引数までの素数のリストを生成する最も単純な関数は何ですか? たとえば、次のような関数を思い付くのは難しくありません。

foo[n_] := Block[{A = {}, p = 2},
           While[p < n, A = Append[A, p]; p = NextPrime[p]];
           A]

ただし、これは非常に厄介なようです。私は次のようなことをしたいと思います

foo[n_] := Table[Prime[i], {i,2,???}]

どこ ???のインデックスですNextPrime[n,-1]。これは可能ですか?

4

3 に答える 3

6

例えば

f[x_] := Prime[Range@PrimePi@x]

使用法

Grid[Table[{x, f[x]}, {x, 13, 20}], Frame -> All]

Mathematica グラフィックス

于 2012-08-05T05:34:06.967 に答える
2

私の好きな形:

p = Prime ~Array~ PrimePi@# &;

p @ 20

{2, 3, 5, 7, 11, 13, 17, 19}

于 2012-08-06T07:01:09.603 に答える
0

このための一般的なアルゴリズムの 1 つは、エラトステネスのふるいです。これは単純なアルゴリズムであり、どの言語でも簡単に実装できます。

于 2012-08-05T04:49:38.457 に答える