列出小于1000的素数,对于这样的算法好多人都会,但对于编程人员,要对这样的算法做优化,会有不同的算法了,以下为我自己的两种算法做比较:
算法一,大众算法。用两个循环法。
public class Test {
public static void main(String[] args) {
long start = System.currentTimeMillis();
for (int i = 2; i < 100000; i++) {
if(prime(i))
System.out.println(i);
}
System.out.println("take times : " + (System.currentTimeMillis() - start));
}
private static boolean prime(int n){
for (int i = 2; i < n; i++) {
if(n % i == 0)
return false;
}
return true;
}
}
算法二,优化后的算法
public class Test2 {
public static void main(String[] args) {
long start = System.currentTimeMillis();
for (int i = 2; i < 100000; i++) {
if(prime(i))
System.out.println(i);
}
System.out.println("take times : " + (System.currentTimeMillis() - start));
}
private static boolean prime(int n){
if(n % 2 == 0)
return n == 2;
for (int i = 3; i*i <= n; i = i + 2) {
if(n % i == 0)
return false;
}
return true;
}
}
以上两个算法比较(数据量越大结果对比越明显):
elipse下运行计算 |
算法一耗时(ms) |
算法二耗时(ms) |
小于1000 |
7 |
5 |
小于100000 |
4590 |
237 |
分享到:
相关推荐
Python 计算从1-N(N可以任何数)内的素数(并行计算、多线程优化计算)
在计算机科学中,判断一个数是否为质数的算法对于加密、编码和其他计算密集型任务至关重要。传统的判断质数的方法是试除法,但这种方法在处理大数时效率较低。针对这一问题,我们可以采用优化算法来提高效率,特别是...
质数(素数)是数学领域的一个重要概念,指大于1且仅能被1和它自身整除的正整数。在计算机科学中,尤其是在密码学、算法设计和数论等领域,质数计算扮演着至关重要的角色。这篇讨论将聚焦于如何在Delphi编程环境中...
1. **素数判断算法**:计算素数最基础的方法是“试除法”。对于一个数n,我们从2开始尝试除到其平方根,如果没有找到能整除n的数,那么n就是素数。优化后的算法,如埃拉托斯特尼筛法(Sieve of Eratosthenes),则能...
总的来说,素数检测的优化涉及到算法选择、数据结构的使用以及对计算资源的有效利用。通过理解和应用这些优化技术,我们可以在保持正确性的同时大大提高代码执行效率。在实际编程中,结合具体需求和环境,选择合适的...
并行计算求素数个数包括java、OpenMP、MPI、.NET、MFC、Windows Api等方法 并行计算求素数个数包括java、OpenMP、MPI、.NET、MFC、Windows Api等方法
根据提供的文件信息,我们可以了解到文章《计算素数个数的一个新公式》由作者许作铭和罗贵文撰写,旨在介绍和证明一种计算素数个数的新公式。该公式的精确度高于素数定理。由于直接引用了大量复杂的公式和符号,这...
在这个特定的示例中,“LabView 计算整数N内所有的素数”指的是利用LabView来编写一个程序,该程序能够找出从1到一个指定整数N之间所有素数。 素数是大于1且除了1和它自身以外没有其他正因数的自然数。判断一个数...
总的来说,通过理解和应用算法优化,如埃拉托斯特尼筛法,可以在 MATLAB 中高效地解决计算大量素数的问题。这对于学习和掌握数值计算、算法分析以及 MATLAB 编程技巧是非常有益的。同时,这个过程也能帮助你更好地...
2. 质数判断算法,如埃拉托斯特尼筛法或其他更优化的方法。 3. GUI编程,使用Delphi的表单设计工具创建用户界面,并与代码逻辑交互。 4. 文件操作,理解不同类型的项目文件以及它们在项目中的作用。 5. 编程逻辑,...
描述中的 "普通pc演算(i7处理器)" 表明这些质数是通过一台搭载i7处理器的个人计算机计算得出的,这通常涉及到算法优化和计算效率的问题。 质数是大于1且只有1和其本身两个正因数的自然数。它们在数论、密码学和许多...
这里我们关注的是一个名为“求解第N个质数(第N个素数)vs2010项目”的项目,该项目使用了Visual Studio 2010作为开发环境。这个项目的目标是高效地找到序列中的第N个质数,这里的N可能是任意正整数。项目中采用的...
在本压缩包“cPP.rar_C语言计算素数”中,包含了一个关于C++编程的实践案例,主要涉及两个知识点:一是如何用C++编写程序来判断并输出100到200之间的素数,二是如何定义一个平面点类(Point)并计算两点之间的距离。...
### 素数筛选法优化方法详解 #### 一、引言 素数筛选法是一种常用的算法,用于找出一定范围内的所有素数。传统的素数筛选法(如埃拉托斯特尼筛法)虽然有效,但在处理大规模数据时可能会显得效率低下。本文介绍了...
描述中提到的“stc15f104e芯片计算素数,并同步显示在LCD上”,意味着项目不仅涉及数值计算,还涉及到人机交互界面。计算素数是基础数学的一个概念,素数是指大于1且除了1和其本身外没有其他正因数的自然数。在这个...
1. **算法优化**:如何更快速、准确地检测大范围内的质数仍然是一个重要的研究方向。 2. **理论突破**:关于质数分布的一些未解之谜,如孪生素数猜想、哥德巴赫猜想等,一直是数学家们努力的方向。 通过以上内容...
总的来说,"ConsoleApplication1_质数数目计算_"项目是一个使用筛法计算一定范围内质数数量的C#程序,它可能通过BitArray优化了内存使用和计算速度。不过,如果需要显示质数列表,就需要扩展代码以输出这些信息。...
"易语言素数计算源码.rar" 是一个包含易语言编写的程序源代码,用于计算素数的示例。素数是数学中的一个重要概念,指大于1且仅能被1和自身整除的自然数。素数计算在密码学、计算机科学等领域有着广泛的应用。 在...
通过上述优化措施,可以有效地减少素数筛选过程中的计算量,从而显著提高算法的执行效率。尽管进一步排除更多较小素数的倍数可以进一步提升效率,但这也会带来算法实现复杂性的增加。因此,在实际应用中需要根据具体...