-2

这是一个“真正的”任务吗,可以用任何语言编写(例如 C/C++)

那么,我的任务是“生成”长度超过 50 位(最大值 = 200)的随机数?

然后,我必须在素性测试中检查这个数字。

那么,这个任务是“真实的”吗?它会消耗多少时间/资源?

另一种方法是从特殊类(可以使用哪个类?)中生成素数 Mersenn 数或其他数

4

2 回答 2

2

有用于素数测试的有效概率算法,例如通常用于此类目的的Miller-Rabin 。

选择一个随机数并使用随机算法测试素数是有效的,因为素数的密度可以保证对于 n 位数字,您需要选择 n 个数字进行测试。

于 2012-02-09T11:31:57.110 回答
1

使用Miller-Rabin 素数检验。此外,您需要一个用于大小数的库,因为 50 位的数字不适合本机数据类型。

这是 Miller-Rabin 的Javascript 实现,它对 Miller-Rabin进行了 50 次迭代。它在几秒钟内完成。

于 2012-02-09T11:30:40.067 回答