随机素数

gmi*_*ile 16 random algorithm primes numbers

如何快速生成一个随机素数,肯定是1024位长?

laa*_*lto 25

  1. 生成1024个随机位.使用足够强大的随机来源以达到预期目的.

  2. 将最高位和最低位设置为1.这确保没有前导零(主要候选者足够大)并且它不是偶数(绝对不是素数).

  3. 测试素数.如果它不是素数,请回到1.

或者,使用库函数为您生成素数.

  • 可选 - 阅读素数分布以确保自己该算法是可行的(即不需要数万亿次尝试). (5认同)
  • 它不需要数万亿次尝试:素数的密度大约是1 in ln(x).在这种情况下,710中的1,但因为他在305中避免偶数1.除非你使用非平凡的素性测试,否则需要数万亿次试验来证明它是素数.如果你需要一个非平凡的素性测试,我不清楚为什么你不会使用一个非平凡的方法来产生更好的候选人. (3认同)

Mar*_*ers 22

使用库函数,例如OpenSSL.没有必要自己写这个.

示例:http://ardoino.com/7-maths-openssl-primes-random/