|
|
1
12
如果足以确定一个数字是否可能是素数,则可以使用内置的 isProbablePrime
|
|
|
2
11
Lucas pseudoprime test 和 Rabin-Miller strong pseudoprime test 在基数2和基数3中。如果这三个结果都是 可能是最好的 然后,出于所有实际的原因,你应该这样认为。这个测试没有已知的反例。如果必须生成素性证书,则可以使用 elliptic curve primality prover ,但速度会慢得多。 |
|
|
3
7
你应该使用 BigInteger |
|
|
4
3
知道它的形式是6k+/-1告诉你它是否“安全”——即 Q+1和Q-1都有较大的因子,使得Q更难被因子化(因此对于加密目的来说是“安全的”)。但表格6k+/-1中的大多数数字都是复合的。 "Safe Prime" page from Wikipedia 如果您想编写自己的例程来测试1000位数字的素性,那么您应该像其他答案所建议的那样使用BigInteger类。你可以用费马 首先测试,它会告诉你这个数字是“绝对复合”还是“可能是素数”。 然后,您可以使用计算更密集的测试,如Miller Rabin或Solovay Strassen 关于最终确定测试的“可能素数”。 |
|
|
5
2
一个1000位数字使用少于350字节的BigDecimal内存。你会发现你可以处理比这个大得多的数字。 很多 大约10^31,这将需要很长时间,大约10^18年。 |
|
|
6
1
如果你不喜欢概率方法,有一个 deterministic polynomial algorithm 但是,除非一位神在玩弄赔率,拉你的腿或其他什么,否则你可能应该只使用概率方法,这会更快。 |
|
|
7
0
你可以利用一些想法。
结合这些方法,您可以大大加快验证速度。 此链接可以帮助您: http://www.osix.net/modules/article/?id=791 当然要使用biginger。 |
|
|
8
0
f、 x: “175417963415175253817696597433408585811164204614256364837827967是素数吗?” 返回: “175417963415175253817696597433408585811164204614256364837827967是素数!” |
|
|
9
0
我想你可以用BigInteger来表示非常大的数字。 但是,有一点您应该注意,格式为6k+1的所有数字都是素数。例如
因此,在生成素数时使用它可能不是很好 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |