求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" #转换成字符串输出
分享到:
- 2007-07-10 00:36
- 浏览 6163
- 评论(7)
- 论坛回复 / 浏览 (7 / 8895)
- 查看更多
相关推荐
概率算法求8皇后问题与概率算法输出1000万以内的质数等带有分析文档
本篇文章是对输出1000以内的素数的算法进行了详细的分析介绍,需要的朋友参考下
定时/计数技术应用程序设计、图形变换程序设计、代码转换程序设计、指法练习程序、个性计算器、星期判断程序、求 100 以内的素数、简易动画制作、打字游戏、幸运抽号。并且要求学生在完成设计任务后,按要求撰写课程...
词法分析与算法优先算法,集合运算:差集,并集,交集 矩阵乘法 线段覆盖数量 矩阵构造,nlogn矩阵乘法 2-SAT XOR AND OR 变量逻辑表达式可满足性 钥匙开门,二分+2-SAT判定 枚举 两维枚举,一维用二分 实数二...
程序的总体设计和算法分析。 程序流程图、函数说明 源程序代码清单 测试数据和测试过程记录 遇到的问题及解决方法分析 实训小结 4. 程序运行方式 构建一个简易菜单,形如: 用户通过输入数值...
2.13 2^14以内的素数 27 3 数据结构 31 3.1 堆(最小堆) 31 3.1.1 删除最小值元素: 31 3.1.2 插入元素和向上调整: 32 3.1.3 堆的建立 32 3.2 并查集 32 3.3 树状数组 33 3.3.1 LOWBIT 33 3.3.2 修改a[p] 33 3.3.3...
0070 求1000以内的完数 45 0071 如何计算x的y次方 46 3.2 复杂计算类算法 46 0072 如何实现金额大小写转换的算法 46 0073 如何计算时钟的指针位置 47 0074 如何计算汉字笔划 48 0075 如何计算两个日期...
2.13 2^14以内的素数 27 3 数据结构 31 3.1 堆(最小堆) 31 3.1.1 删除最小值元素: 31 3.1.2 插入元素和向上调整: 32 3.1.3 堆的建立 32 3.2 并查集 32 3.3 树状数组 33 3.3.1 LOWBIT 33 3.3.2 修改a[p] 33 3.3.3...
7.1用筛法求100之内的素数。 28 7.2用选择法对10个整数排序(从小到大)。 30 7.3求一个3×3矩阵对角线元素之和。 31 7.4有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。 32 7.5将一个...
Transform)、频谱分析、图像处理的分析等领域,DSP正在大量进入嵌入式市场。 18. MCU在射频控制时,MCU的时钟(晶振)、数据线会辐射基频或基频的倍频,被低噪放LNA放大后进入混频,出现带内的Spur,无法滤除...
0070 求1000以内的完数 45 0071 如何计算x的y次方 46 3.2 复杂计算类算法 46 0072 如何实现金额大小写转换的算法 46 0073 如何计算时钟的指针位置 47 0074 如何计算汉字笔划 48 0075 如何计算两个日期...