小编Joh*_*ohn的帖子

加速Ruby中最强大的素因子程序

一个简单的程序,用于在Ruby中查找数字的最大素数因子,由2种方法组成:

def is_prime?(n)
  (2..n).select {|number| n % number == 0}.length == 1 ? true : false
end

def prime_factors(number)
  (1..number).select {|m| number % m == 0 && is_prime?(m) == true}.max
end
Run Code Online (Sandbox Code Playgroud)

它适用于像100这样的小数字.但是,我正在尝试使用数字600851475143解决Project Euler上的问题.当尝试此问题时,问题甚至不会运行,我最终在大约一分钟后取消它.

如何改变这一点以提高性能?

ruby algorithm performance primes

3
推荐指数
1
解决办法
178
查看次数

如何快速乘以两个最大的数组元素

我正在做一个挑战,要求一个方法来乘以一个数组的两个最大元素,并找到一个不到一秒的解决方案.

这是我目前在~1.6秒的时间

def max_product(a)
  a.sort[-1] * a.sort[-2]
end 
Run Code Online (Sandbox Code Playgroud)

我怎样才能改写它以加快速度呢?

ruby arrays methods performance

2
推荐指数
1
解决办法
85
查看次数

标签 统计

performance ×2

ruby ×2

algorithm ×1

arrays ×1

methods ×1

primes ×1