Skip to content

Instantly share code, notes, and snippets.

@mnbi
Created November 6, 2010 12:35
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 mnbi/665383 to your computer and use it in GitHub Desktop.
Save mnbi/665383 to your computer and use it in GitHub Desktop.
make a list of prime numbers.
#!/opt/local/bin/ruby1.9 -w
# -*- coding: utf-8 -*-
# listprime.rb: make a list of prime numbers.
require 'prime'
def die(*x)
STDERR.puts x
exit 1
end
if ARGV.length < 2
die <<USAGE
Usage: #{__FILE__} <start> <range>
print prime numbers (start <= primes < start + range)
USAGE
end
start = ARGV.shift.to_i
range = ARGV.shift.to_i
def prime(n)
return [false, 1] if n.even?
c = 1
d = 3
limit = Math::sqrt(n)
while d <= limit
return [false, c] if (n % d == 0)
c += 1
d += 2
end
[true, c]
end
t0 = Time.now
(start...(start + range)).each do |n|
result = prime(n)
print "#{n} (#{result[1]})\n" if result[0]
end
elapsed = Time.now - t0
print "Elapsed: #{elapsed}\n"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment