今天重新浏览了之前的一个老帖,帖子的基本内容大概是讨论求100以内质数(素数)的方法,随意看了一下,自己随意写了一个,稍稍优化一下就不管了。今天突然想起又去仔细看了看,帖子后来变成讨论求出1000万以内所有质数的算法。
再用自己的程序跑了一下,发现用时18秒,惭愧啊。
找了一个高手的回答跑了一下,发现用时400毫秒。。。差距啊。
他的代码如下:
static void ListPrime(int n) {
/**
* false为质数,true为合数
*/
boolean[] primeList = new boolean[n + 1];
for (int i = 2; i <= n; i++) {
if (!primeList[i]) {
int j = i * i;
if (j > n)
break;
if (i > 2) {
while (j <= n) {
primeList[j] = true;
j = j + i + i;
}
} else {
while (j <= n) {
primeList[j] = true;
j = j + i;
}
}
}
}
List<Integer> ret = new ArrayList<Integer>(10000);
ret.add(2);
for (int i = 3; i <= n;) {
if (!primeList[i]) {
//System.out.print(i + " ");
ret.add(i);
}
i += 2;
}
System.out.println(ret.size());
}
中间的核心代码没有看懂,先记下来,在琢磨琢磨
分享到:
相关推荐
用javajava script求出一千以内的质数
根据给定的文件信息,我们可以总结出以下与“求1000以内的质数C++程序”相关的知识点: ### 一、质数定义及性质 #### 1. 质数定义 - **质数**(Prime Number)是指在大于1的自然数中,除了1和它本身以外不再有其他...
1000以内的质数:"+str ; }">public class Test public static void main String [] args { String str ""; for int i 1; i < 1000; i++ { for a 2; a < int i 2; a++ { if i % a 0 { ...
用python求100以内质数
埃拉托斯特尼筛法是一种高效的找出所有小于给定上限n的质数的算法。基本步骤如下: - 初始化一个大小为n的布尔数组,所有元素初始化为true,表示它们可能是质数。 - 从2开始,将所有2的倍数标记为非质数(即数组...
c++程序求100以内的质数,很简单的就是要会质数的函数就可以,赚点分数 希望和高手学习
计算1~1000的质数的程序,实现的算法比较简单。
根据给定的文件信息,我们可以总结出以下与“用汇编语言求1000以内的质数”相关的知识点。 ### 汇编语言简介 汇编语言是一种低级编程语言,它为每条机器指令提供一个助记符,使得程序员能够更容易地编写程序,并且...
标题 "50000000(五千万)以内质数(素数)3001134(约三百万)个.zip" 暗示了这个压缩包包含了一个文本文件,列出了从1到50,000,000之间所有约300万个质数。描述中的 "普通pc演算(i7处理器)" 表明这些质数是通过一台搭载...
1. **算法优化**:如何更快速、准确地检测大范围内的质数仍然是一个重要的研究方向。 2. **理论突破**:关于质数分布的一些未解之谜,如孪生素数猜想、哥德巴赫猜想等,一直是数学家们努力的方向。 通过以上内容...
1000以内质数查询-控制台程序1000以内质数查询-控制台程序1000以内质数查询-控制台程序
此外,这个题目还可以引导学习者探索更高效的质数判断方法,比如埃拉托斯特尼筛法,这是一种更快速找出一定范围内所有质数的算法。通过不断优化算法,可以提高程序的运行效率,这也是计算机科学中的一大挑战。 总的...
一亿以内的质数表 整理出来了
java输出1到100以内所有的质数java输出1到100以内所有的质数java输出1到100以内所有的质数java输出1到100以内所有的质数java输出1到100以内所有的质数java输出1到100以内所有的质数java输出1到100以内所有的质数java...
或者,利用质数筛法(如埃拉托斯特尼筛法)提前筛选出所有1亿以内的素数,再进行回文判断。 这个任务不仅涉及基础的算法和数据结构,还考验了编程效率和内存管理。通过解决这个问题,可以提升编程技巧,理解并实践...
标题 "Prime_100000以内的所有质数的输出_" 提供的信息是,这个项目或程序的目的是找出并打印出100000以内的所有质数。质数是大于1且除了1和它本身以外没有其他正因数的自然数。这个任务可能涉及到两种不同的算法或...
在计算机编程中,输出n以内的所有质数是一个常见的问题,对于学习C语言的初学者来说,这是一个很好的练习项目。 首先,我们需要理解如何判断一个数是否为质数。最基础的方法是试除法:对于每个小于等于n的数i,检查...
在这个任务中,我们将探讨如何使用Java来打印出100以内的所有质数。 首先,我们需要了解找到质数的基本算法。一种常见的方法是“埃拉托斯特尼筛法”(Sieve of Eratosthenes),但在这里,由于范围较小(1到100),...
如何快速记忆100以内的质数表参考.doc
### 100万以内的素数表 #### 知识点概述 本文将详细介绍“100万以内的素数表”的相关知识点,包括素数的基本概念、素数的重要性以及如何生成和应用素数表等内容。 #### 素数的基本概念 **素数**(Prime Number)指...