Skip to content

Instantly share code, notes, and snippets.

@finsterthecat
Last active January 16, 2018 21:01
Show Gist options
  • Save finsterthecat/1176968 to your computer and use it in GitHub Desktop.
Save finsterthecat/1176968 to your computer and use it in GitHub Desktop.
Euler Problem #7 - 10001st prime number (much (20x!) faster - now break when primes > sqrt prime candidate)
primes = [2]
count = 1
prime_candidate = 2
start = Time.now()
until (count == 10001) do
prime_candidate +=1
while (true) do
psqrt = Math.sqrt(prime_candidate)
unless primes.
find do |prime|
break if prime > psqrt
prime_candidate % prime == 0
end
break;
end
prime_candidate +=1
end
primes << prime_candidate
count +=1
end
puts prime_candidate
elapsed = start - Time.now()
puts elapsed.to_s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment