1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
# A silly little test program that finds prime numbers. It
# is intentionally badly designed to show off the use
# of ruby-prof.
#
# Source from http://people.cs.uchicago.edu/~bomb154/154/maclabs/profilers-lab/
def make_random_array(length, maxnum)
result = Array.new(length)
result.each_index do |i|
result[i] = rand(maxnum)
end
result
end
def is_prime(x)
y = 2
y.upto(x-1) do |i|
return false if (x % i) == 0
end
true
end
def find_primes(arr)
result = arr.select do |value|
is_prime(value)
end
result
end
def find_largest(primes)
largest = primes.first
# Intentionally use upto for example purposes
# (upto is also called from is_prime)
0.upto(primes.length-1) do |i|
prime = primes[i]
if prime > largest
largest = prime
end
end
largest
end
def run_primes(length=10, maxnum=1000)
# Create random numbers
random_array = make_random_array(length, maxnum)
# Find the primes
primes = find_primes(random_array)
# Find the largest primes
find_largest(primes)
end
|