Fixnum对象和红宝石素数
-
23-08-2019 - |
题
在我开始写这篇我自己,有没有人看到了以下行为的Ruby实现?
puts 7.nextprime(); #=> 11
puts 7.previousprime(); #=> 5
puts 7.isprime(); #=> true
显然,这种事情是丑陋的人,大批但从未整数超过几千(常见的实例对我来说)一个合理的实施是可行的,因此这个问题。
解决方案
红宝石配有内置Prime
类,允许您通过从1开始的素数迭代,但我看不到出路与1以外的初始值进行初始化,也不是一个谓词检查,以确定是否一个数是素数。我说去了,但是你应该记住的是,数学在Ruby中可能会很慢,如果性能是一个因素,你可能会更好考虑写它作为一个C或Java扩展。下面是href="http://on-ruby.blogspot.com/2006/07/rubyinline-making-making-things-faster.html" rel="noreferrer">如何使用了RubyInline生成素。
另外,我建议你避免使用方法名7.isprime
- 在Ruby中的约定是7.prime?
其他提示
看看发现这里的片段。他们可以给你一个领先地位。
不隶属于 StackOverflow