1

我大部分时间都使用 pari 进行计算数论研究。我输入了以下内容:for(x=1,100,print1(eulerphi(n)-1))
它给出了整数 1 到 100 的 φ(n)-1 的值。这里 φ(n) 是小于 n 且与​​ n 互质的整数个数。它给出了以下输出:(
0 0 1 1 3 1 5 3 5 3 ... 65 31 43 23 69 2 43 59 45 71 31 95 41 59 39
我排除了一些整数以使问题简短)我想检查这些数字中是否有数字。我该怎么做?

4

1 回答 1

1

您可以使用函数setsearch通过排序列表执行二进制搜索。它返回从 1 开始的匹配索引,如果没有找到,则返回 0。你的例子在这里:

xs = Set(vector(100, n, eulerphi(n)-1))
> [0, 1, 3, 5, 7, ..., 87, 95]

setsearch(xs, 4)
> 4

setsearch(xs, 20)
> 0
于 2020-11-24T09:01:20.910 回答