你最好的选择是libgmp.
它有一个函数,可以从一些起始编号开始扫描下一个素数(使用Miller-Rabin).
void mpz_nextprime ( mpz_t rop, mpz_t op );
Run Code Online (Sandbox Code Playgroud)
将rop设置为大于op的下一个素数.
此函数使用概率算法来识别素数.实际上,它是足够的,复合材料通过的可能性非常小.
是你想要的功能.
您只需根据需要滚动一个随机数,然后点火即可mpz_nextprime.运行时应该在某处O(log(op))(概率).
您还需要一个随机数生成器.