|
|
1
13
|
|
|
2
6
你可以自己做基准,但我猜
|
|
|
3
4
也可以试试 Sieve of Erathostenes |
|
|
4
1
使用ints。为primesList使用一个固定大小的数组,这样就不必为内存分配付费(或者使起始大小足够大,以便动态列表不会出现问题)。 使用一个正常的计数整数,而不是计数外的循环。 |
|
|
5
1
另外,你可以试试
|
|
|
6
1
最好使用int/long,只需遍历循环来检查一个数是否为素数。为了优化和加速程序,可以通过将限制设置为Math.sqrt(num)来减少for循环中的迭代次数。 参考文献: http://www.mycoding.net/2012/01/program-to-find-10001st-prime-number-project-euler-problem-7/ |
|
|
7
0
我注意到你的代码测试了所有的候选者是否可以被2整除。但你的主要候选人永远都不是。所以你可以跳过第一次测试。这是件小事,但你可以省下9999个mod。 |
|
|
8
0
这是一个.NET解决方案。。。我的测试表明我在132ms中获得了10001prime,在4417ms中获得了100000 prime。
|
|
9
0
我只是翻译了 Sieve of Eratosthenes 变成了Java。它被认为是用算法求解素数最有效的方法之一。
|
|
|
mattdub · 如何在ASCII和字典中找到最大素数? 2 年前 |
|
|
bob Glenn · 素数确定Javascript 13 年前 |
|
|
bbalchev · 根据整数的素因子对其进行排序 13 年前 |
|
|
Valentine Bondar · Python生成器返回停止迭代? 14 年前 |