#The prime factors of 13195 are 5, 7, 13 and 29.
#What is the largest prime factor of the number 600851475143 ?
require 'mathn'
class Integer
#这个解法是没有分解number,导致基数太大,效率极低
#def big_prime
# lock = Time.now
# gen = Prime.new
# max = 0
# gen.each do |prime|
# max = prime if self % prime == 0
# break if prime > self
# end
#end
def big_prime
lock = Time.now
max, d = 0, 2
number = self.to_i
while(d <= number)
(number%d == 0) ? (max, number = d, number/d) : d += 1
end
puts self.to_s+"的最大质数是:"+max.to_s
puts "所用时间为:"+(Time.now - lock).to_s
end
end
600851475143.big_prime
ProjectRuler-3
最新推荐文章于 2022-08-18 10:57:29 发布