`
laies
  • 浏览: 242934 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

求50以内的素数,算法分析。

    博客分类:
  • Ruby
阅读更多

求50以内的素数,以下算法做了很大程度的优化。拿出来与大家分析,望有更好的优化算法。

$arr=[ ]      #建立一个全局数组  $arr
$arr[0]=2   #第一个位置值存入2

 def add_prime(n)    #定义方法  将 n以内的奇素数加入$arr

    3.step(n,2){|num|$arr <<num  if is_prime?num }   
       #从3开始,取50以内的奇数,并判断将素数存入arr数组中
      
 end
 
 def  is_prime?(number)   #定义方法  判断一个数是否是素数
    j=0                                #数组下标
         
      #算法分析:首先判断该数是否大于小于本身素数的平方,
      #大于则判断是否整除该素数,等于则证明该数是非素数。
      #前俩者不成立,则该数小于素数平方证明该数为素数。
   
    while  $arr[j] * $arr[j] <=number
      return false  if  number  %  $arr[j] ==0
      j +=1
    end
    return true
 end

add_prime(50)
print  $arr.join(", "),"\n"          #转换成字符串输出

分享到:
评论
7 楼 njmzhang 2007-07-17  
graying 写道
说优化谈不上,但是ruby写的确方便很多。
哪里看到过的例子,回忆了写的:
(2..50).each{|n| s=true; (2..n-1).each{|f| (s=false; break;) if n%f==0 }; puts n if s}


(2..50).inject([])  { |s, e| (s.map { |x| e % x }).include?(0) ? s : s << e }
6 楼 xangd 2007-07-16  
50以内?
搞个对照表查一下最快乐 哈哈
5 楼 roger 2007-07-16  
判断素数最快还是费马小定理
4 楼 graying 2007-07-14  
说优化谈不上,但是ruby写的确方便很多。
哪里看到过的例子,回忆了写的:
(2..50).each{|n| s=true; (2..n-1).each{|f| (s=false; break;) if n%f==0 }; puts n if s}
3 楼 dennis_zane 2007-07-14  
费马小定理来检测,对数级的增长阶
2 楼 skyin 2007-07-13  
还没有更高效率的?
1 楼 yuhai.china 2007-07-13  
求素数的标准算法是“筛法”,呵呵

相关推荐

    求100以内的素数

    #### 三、求解100以内素数的算法实现 - **核心思路**: - 对于每个数`i`(从2到100),检查其是否为素数。 - 使用一个变量`jishu`记录是否找到因子,初始值设为1表示当前数可能是素数。 - 计算每个数的平方根`...

    求1000以内的质数C++程序

    通过以上分析,我们可以看到原程序虽然基本实现了求1000以内质数的功能,但在细节处理上存在一定的问题。理解质数的概念及其判断方法对于编写正确的程序至关重要。同时,在编程实践中,需要注意代码的逻辑清晰度和...

    求100以内的素数.zip c#

    【标题】"求100以内的素数.zip" 是一个使用C#语言编写的程序,旨在找出并显示100以内的所有素数。素数是自然数中除1和自身外没有其他正因数的数,如2、3、5、7等。这个程序的目的是帮助学习者理解如何在C#环境中实现...

    求质数表的方法,30000以内质数

    这个列表对于数学研究、密码学、计算机科学等领域都有一定的实用价值,例如在加密算法中,质数常用于生成密钥对,而在数论研究中,质数表有助于分析数的性质和构造特殊序列。 总结来说,求30000以内的质数表,可以...

    c++完成求两千以内的素数

    ### C++实现求两千以内的素数 #### 知识点概述 本篇文章将通过分析一个C++程序来深入理解如何使用编程语言实现求解两千以内的素数。该程序利用了筛法(Eratosthenes Sieve)的思想,并在主函数中实现了基本的数据...

    求100以内的素数解题方案

    本篇文章将深入解析如何使用C++语言求解100以内的所有素数,通过对给定代码的分析,提炼出关键的知识点,帮助读者理解和掌握素数判断的基本逻辑与实现方法。 ### 知识点一:素数定义及其性质 素数(Prime Number)...

    C#实现100以内素数

    ### C#实现100以内素数的算法详解 #### 一、背景介绍 在数学领域,素数(Prime Number)是指只能被1和自身整除的大于1的自然数。例如,2、3、5、7等都是素数。素数在密码学、信息安全等领域有着重要的应用价值。...

    一亿以内的素数表.zip

    "一亿以内素数表01.xls"可能是一个包含一亿以内所有素数的电子表格,每个数字占据一行或一列。用户可以使用Excel的内置函数和工具,比如排序、过滤、计算等,对这些素数进行进一步的分析和操作。例如,可以找出最大...

    素数算法素数代码

    - **功能**:此段代码用于生成指定范围内(此处为100以内)的所有素数。 - **实现思路**:通过双重循环结构,利用`composite`变量记录i从2到i-1时整除i的个数。当某个数i不能被2到i-1之间的任何数整除时,认为该数为...

    1亿以内的素数表.rar

    《一亿以内的素数表》是一个非常实用的资源,主要针对那些在数学、计算机科学或者相关领域工作或学习的人群。素数是数学中的基本元素,它的重要性不言而喻,不仅在纯数学理论中占有核心地位,在密码学、编码理论以及...

    求素数_求素数_

    描述中提到的“求1000以内素数”是一个具体的应用场景,目标是找出1到1000之间所有的素数,并且要求“在较短的时间内”完成,这涉及到算法的时间复杂度。常见的解决方法是埃拉托斯特尼筛法(Sieve of Eratosthenes)...

    Prime_100000以内的所有质数的输出_

    描述 "2种方法实现100000以内的所有质数的输出,并显示执行时间" 暗示了这个项目不仅包含了计算质数的代码,还可能对比了两种不同的算法效率,通过测量它们的执行时间来展示性能差异。这可能是基于时间复杂度的概念...

    找100中的素数

    此外,这个例子还可以扩展到更复杂的算法,例如优化素数检测,如埃拉托斯特尼筛法,或者将结果存储在数组或列表中,以便进一步分析。 总的来说,VB找100中的素数是学习编程和数学概念的一个好例子,它涉及到基本的...

    使用 Matlab 计算 10000000 以内数的素数。由于 for 循环很慢,需要算法优化。.zip

    在 MATLAB 中计算大范围内的素数是一项常见的编程挑战,尤其是当范围...这对于学习和掌握数值计算、算法分析以及 MATLAB 编程技巧是非常有益的。同时,这个过程也能帮助你更好地理解数学和计算机科学之间的紧密联系。

    java程序求素数和并输出结果

    本次探讨的主题是“Java程序求10000以内素数和并输出结果”。这不仅是一个基础的编程实践,同时也是对Java语言特性、循环结构、条件判断以及数组操作等多方面技能的综合运用。下面,我们将深入解析这一知识点,包括...

    输出100-1000之间的所有素数

    输出100-1000之间的所有素数,用C++写的,完全正确!

    C#求1到100之间的素数

    ### C#求1到100之间的素数 #### 代码分析: 首先,我们来看代码中的关键部分。代码以`using System;`开头,这是C#程序的常见写法,引入了System命名空间,其中包含了C#语言运行时的基本类库,如`Console`类,用于...

    输出10000以内的质数判断区间内的质数.docx

    在C语言的学习过程中,开发一个程序来找出10000以内的质数,并判断用户指定区间内是否存在质数是一项常见的练习。这个程序的核心在于理解质数的概念以及如何有效地检查一个数是否为质数。质数是大于1的自然数,除了1...

    Python求出0~100以内的所有素数

    ### Python求出0~100以内的所有素数 #### 背景与概念 在数学领域,素数(也称质数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。与此相对的是合数,即除了1和它本身以外还有其他因数的数。了解...

    LabView 计算整数N内所有的素数

    判断一个数是否为素数是计算机科学中的基础算法之一。以下是一些关于这个主题的重要知识点: 1. **素数定义**:理解素数的概念是编程求解的基础。素数不包括1和0,且大于1的自然数如果只有两个正因数1和本身,那么...

Global site tag (gtag.js) - Google Analytics