我想打印前10000个质数。谁能给我最有效的代码吗?说明:
您的代码对于n> 10000效率是否低并不重要。 代码的大小无关紧要。 您不能仅以任何方式对值进行硬编码。
筛子或Eratosthenes可能是查找素数列表的最直观方法。基本上,您:
写下一个数字列表,从2到您想要的任何限制(例如1000)。 取第一个未被舍去的数字(对于第一次迭代,为2),并从列表中舍去该数字的所有倍数。 重复步骤2,直到到达列表的末尾。所有未划掉的数字都是质数。 显然,可以做很多优化来使该算法更快地工作,但这是基本思想。
Atkin的筛子使用类似的方法,但是不幸的是,我对它的了解不足,无法向您解释。但是我确实知道,我链接的算法需要8秒钟才能弄清在古老的Pentium II-350上所有的质数达到1000000000
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。