生成直到参数的素数列表的最简单函数是什么?想出这样的功能并不难,例如:
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]
。这可能吗?
生成直到参数的素数列表的最简单函数是什么?想出这样的功能并不难,例如:
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]
。这可能吗?
例如
f[x_] := Prime[Range@PrimePi@x]
用法
Grid[Table[{x, f[x]}, {x, 13, 20}], Frame -> All]
我最喜欢的形式:
p = Prime ~Array~ PrimePi@# &;
p @ 20
{2、3、5、7、11、13、17、19}
一种常见的算法是埃拉托色尼筛法。这是一个简单的算法,并且在任何语言中都相当容易实现。