Advertisement
Guest User

Untitled

a guest
Feb 24th, 2013
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.56 KB | None | 0 0
  1. # the number to split into prime factors
  2. PRODUCT=600_851_475_143
  3.  
  4.  
  5.  
  6. PRIME_MAX = Math.sqrt(PRODUCT).ceil
  7. # There is not enough ram to sieve the primes, so use the CPU death method.
  8.  
  9. greatest_prime_factor = 0
  10.  
  11.  
  12. def check_prime(x)
  13.   (2..x/2).each{|n|
  14.     return false if x%n == 0
  15.   }
  16.   return true
  17. end
  18.  
  19. (2..PRIME_MAX).each{ |candidate|
  20.   is_factor = PRODUCT%candidate == 0
  21.   if is_factor
  22.     # check primality
  23.     is_prime = check_prime(candidate)
  24.   end
  25.   greatest_prime_factor = candidate if is_factor and is_prime
  26. }
  27.  
  28. puts greatest_prime_factor
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement