如何生成前 n 个素数? [英] How do I generate the first n prime numbers?

查看:84
本文介绍了如何生成前 n 个素数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在学习 Ruby 并做一些数学方面的工作.我想做的一件事就是生成素数.

I am learning Ruby and doing some math stuff. One of the things I want to do is generate prime numbers.

我想生成前十个素数,只生成前十个.我可以测试一个数字以查看它是否是质数,但想知道生成这些数字的最佳方法是什么?

I want to generate the first ten prime numbers and the first ten only. I have no problem testing a number to see if it is a prime number or not, but was wondering what the best way is to do generate these numbers?

我正在使用以下方法来确定数字是否为质数:

I am using the following method to determine if the number is prime:

class Integer < Numeric
  def is_prime?
    return false if self <= 1
    2.upto(Math.sqrt(self).to_i) do |x|
      return false if self%x == 0
    end
    true
  end
end

推荐答案

在 Ruby 1.9 中,有一个 Prime 类可以用来生成素数,或测试一个数是否为素数:

In Ruby 1.9 there is a Prime class you can use to generate prime numbers, or to test if a number is prime:

require 'prime'

Prime.take(10) #=> [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
Prime.take_while {|p| p < 10 } #=> [2, 3, 5, 7]
Prime.prime?(19) #=> true

Prime 实现了 each 方法并包含 Enumerable 模块,因此您可以执行各种有趣的事情,例如过滤、映射等.

Prime implements the each method and includes the Enumerable module, so you can do all sorts of fun stuff like filtering, mapping, and so on.

这篇关于如何生成前 n 个素数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆