Skip to content

Instantly share code, notes, and snippets.

@gingeleski
Created January 6, 2015 07:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gingeleski/dffb98a31b8e4ea04d8f to your computer and use it in GitHub Desktop.
Save gingeleski/dffb98a31b8e4ea04d8f to your computer and use it in GitHub Desktop.
Finds the largest prime factor of a given integer, up to 1024.
# Finds the largest prime factor of a given integer.
# Up to 1024 for sake of efficiency.
def find_factors(number)
factors = Array.new
for x in 1..number
factors << x if number % x == 0
end
return factors
end
def is_prime(number)
maximum = Math.sqrt(number)
for x in 2..maximum
if number % x == 0
return false
end
end
return true
end
print "Integer up to 1024: "
number = gets.chomp.to_i
if number > 1024 || number < 1
print "Defaults to 1024\n"
number = 1024
end
factors = find_factors(number)
big_prime_factor = 0
while big_prime_factor == 0
if is_prime(factors.last)
big_prime_factor = factors.last
else
factors.delete(factors.last)
end
end
puts big_prime_factor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment