如果数字为2,则返回true;如果数字可被2整除,则返回false .

开始迭代3,而不是2.使用两步 .

迭代到数字的平方根,而不是数字减1 .

def prime?(number)

return true if number == 2

return false if number <= 1 or number % 2 == 0

(3..Math.sqrt(number)).step(2) do |n|

return false if number % n == 0

end

true

end

@Technation解释说,这会快得多,但仍然不会很快 .

以下是使用Sieve of Eratosthenes built into Ruby的方法 . 您需要将所有素数预先计算到最大值,这将非常快,然后选择每个范围内的素数 .

require 'prime'

ranges = Array.new(gets.strip.to_i) do

min, max = gets.strip.split.map(&:to_i)

Range.new(min, max)

end

primes = Prime.each(ranges.map(&:max).max, Prime::EratosthenesGenerator.new)

ranges.each do |range|

primes.each do |prime|

next if prime < range.min

break if prime > range.max

puts prime

end

primes.rewind

puts "\n"

end

以下是各种解决方案在50000 200000范围内的性能:

你的原始素数?功能:1m49.639s

我修改了素数?功能:0m0.687s

Prime :: EratosthenesGenerator:0m0.221s

处理的范围越多,Prime :: EratosthenesGenerator方法应该越快 .

java生成大素数_代码优化 - 生成素数相关推荐

  1. latex自动生成中文目录_自动生成工作表目录三种方法,看哪种适合你?

    如果在一个工作簿内有很多工作表需要去维护管理,一个个的查找显然是很麻烦的,建立一个工作表的导航目录无疑是最便捷的方法. 下面介绍三种生成工作表目录的方法: 一.利用宏表函数生成可导航目录 第1步:定义 ...

  2. java随机数带字母_随机生成一组随机数(带字母和数字)

    随机生成一组随机数(带字母和数字) package com.qfx.util; import java.util.Random; public class CharacterUtils { // 得到 ...

  3. python生成大文件_用Python生成非常大的XML文件?

    也许您可以使用模板引擎而不是自己生成/构建xml?在 例如,Genshi基于xml,支持流式输出.一个非常基本的例子:from genshi.template import MarkupTemplat ...

  4. java开发防伪码_企业编码生成系统智能批量生成带数据分析功能的防伪码

    一 代码 # 生成含数据分析功能防伪编码函数,参数schoice设置输出的文件名称 def scode5(schoice): default_dir = r"mrsoft.mri" ...

  5. java生成动态验证码_动态生成验证码案例

    servlet代码 package cn.guizimo.web.servlet; import javax.imageio.ImageIO; import javax.servlet.Servlet ...

  6. java xsl生成word文件_导出生成xsl文件

    public String expData() throws Exception{ List list = subAreaService.findAll(); HSSFWorkbook hssf =  ...

  7. java 生成正弦波声音_如何生成一个正弦波声音曲线?

    Why would you want to create a sine wave? Creating a sine wave is useful for a number of things. How ...

  8. 通过.obj生成2d图像_自动生成 凹凸法线灯贴图 插件

    CrazyBump疯狂凹凸自动生成凹凸法线灯贴图 CrazyBump是一款专业的法线贴图制作软件,人们一般称之为超级法线凹凸生成软件,用来做材质中贴图中的凹凸和法线贴图是非常不错的,CrazyBump ...

  9. datafactory生成mysql数据_测试数据生成工具DataFactory的使用

    DATA FACTORY的使用 Data Factor y是一个数据库测试数据生成工具. Data Factory主要可以利用在以下两个方面:1.按照数据表中要求数据的格式,快速产生标准或不标准的测试 ...

最新文章

  1. docker探索-使用docker service管理swarm(十一 )
  2. 搭建App主流框架_纯代码搭建(OC)
  3. 【趣话编程】一个整数+1引发的灾难
  4. opensource项目_最佳Opensource.com:教育
  5. (47)FPGA面试题LATCH和DFF的区别
  6. python遍历文件_python3 遍历文件夹目录所有文件
  7. powerbi python词云图_使用Power BI制作可爱的词云图
  8. 21天Jenkins打卡Day6安装插件
  9. python requests session post_requests.session()发送请求 和使用requests直接发送请求的区别...
  10. mysql学生管理系统背景_学生基本系统管理
  11. 【软考】信息化和信息系统复习指南
  12. matlab在xrd中的应用,XRD物相分析(Jade软件的应用).pdf
  13. 如何防范动态调试(Anti-Debug)(SoftICE篇)
  14. json datasource使用
  15. Facebook批量养号分享
  16. 职场菜鸟如何更好的提升自己?
  17. OpenGL/C++实战——C++实现太阳系行星系统
  18. Echart + 百度地图实现区域聚合(Vue版)
  19. string.Equals和tring.Compare比较字符串(并且忽略大小写)
  20. ICO 项目被一刀切后,是时候深入探索区块链技术的应用了

热门文章

  1. DatagridView 常用功能代码
  2. 装逼神器,5 行 Python 代码 实现一键批量扣图,你get到了吗
  3. HTML5 API详解(16):web socket 全双工通信
  4. 服务器响应401,服务器返回HTTP响应代码:401,URL:https
  5. 计算机扩展卡,对于电脑来说, 扩展卡是什么?与接口又有什么关系呢?
  6. 空间插值方法对比整理
  7. iBiology |专业的生信科普网站
  8. fcpx视觉特效插件包 - FxFactory for Mac 支持M1芯片
  9. motionVFX mRevealer Glitch Mac(fcpx插件:30个故障干扰马赛克毛刺失真特效)
  10. html用函数输出nn乘法表,第5讲 PHP编程.ppt