0

我正在使用 Pari/GP 来测试数字序列的(伪)素性f(n),其中f(n)有一些函数。我已将代码并行化为

test(a) = parfor(n = 1, +oo, if(ispseudoprime(f(n)), print("PRIME "n));)

这很好用,但我也想知道正在测试哪个号码。我当然可以print(n)if. 问题是,在非常快的同时ispseudoprime(a(n))可能需要相当长的时间。由于计算是并行的,输出很快就会变得一团糟:我会看到已测试的数字列表,但我不知道在给定时刻正在测试什么数字(想法是,如果程序是花费大量时间在一个数字上它越来越可能是素数,所以我想知道它)。nn+1

有没有一种简单的方法可以做到这一点?谢谢!

4

1 回答 1

0

我解决了(可能以一种非常肮脏的方式)这样

test(a) = parfor(n = 1, +oo, write("started",n); if(ispseudoprime(f(n)), print("PRIME "n)); write("done",n))

然后grep -v -f done started给我想要的。

于 2021-02-25T13:03:14.097 回答