GP/PARI 中的动态数组

Dynamic array in GP/PARI

我需要计算从 1 到 N 的素数个数。为此,我想将每个下一个数字 n 除以 2 到 sqrt(n) 范围内的素数。为此,反过来,我需要存储所有以前收集的素数。

如何有效地存储它们?

以防万一,我对查找素数的算法不感兴趣,我对一般如何存储此类数据感兴趣。在 C++ 中,我可以使用 std::vector,因为它会适当地重新分配自身或某种列表。

在 PARI/GP 中,对于高效的动态数组,您可以使用 List。它的行为类似于 C++ 中的 std::vector。 请看下面的例子:

xs = List()
gp> List([])

listput(xs, 1);
listput(xs, 2);

xs
gp> List([1, 2])