这是一个“真正的”任务吗,可以用任何语言编写(例如 C/C++)
那么,我的任务是“生成”长度超过 50 位(最大值 = 200)的随机数?
然后,我必须在素性测试中检查这个数字。
那么,这个任务是“真实的”吗?它会消耗多少时间/资源?
另一种方法是从特殊类(可以使用哪个类?)中生成素数 Mersenn 数或其他数
这是一个“真正的”任务吗,可以用任何语言编写(例如 C/C++)
那么,我的任务是“生成”长度超过 50 位(最大值 = 200)的随机数?
然后,我必须在素性测试中检查这个数字。
那么,这个任务是“真实的”吗?它会消耗多少时间/资源?
另一种方法是从特殊类(可以使用哪个类?)中生成素数 Mersenn 数或其他数
有用于素数测试的有效概率算法,例如通常用于此类目的的Miller-Rabin 。
选择一个随机数并使用随机算法测试素数是有效的,因为素数的密度可以保证对于 n 位数字,您需要选择 n 个数字进行测试。
使用Miller-Rabin 素数检验。此外,您需要一个用于大小数的库,因为 50 位的数字不适合本机数据类型。
这是 Miller-Rabin 的Javascript 实现,它对 Miller-Rabin进行了 50 次迭代。它在几秒钟内完成。