How to print the first 100 prime numbers in Ruby

1 Answer

0 votes
#
# Print the first 100 prime numbers.
#
# The program is structured for clarity:
# - A helper method determines whether a number is prime.
# - A generator method collects primes until reaching the desired count.
# - Comments explain the reasoning behind each step.
#

def prime?(n)
  #
  # Return true if n is a prime number.
  #
  # The method uses a straightforward and efficient approach:
  # - Reject numbers below 2.
  # - Only test divisors up to the square root of n.
  #   Using i * i <= n avoids repeated Math.sqrt calls.
  #
  return false if n < 2

  i = 2
  while i * i <= n
    return false if n % i == 0   # Found a divisor → not prime
    i += 1
  end

  true                           # No divisors found → prime
end

def first_n_primes(count)
  #
  # Generate an array containing the first `count` prime numbers.
  #
  # The method increments through natural numbers,
  # checks primality, and collects primes until the array is full.
  #
  primes = []
  number = 2   # Start from the first prime candidate

  while primes.length < count
    primes << number if prime?(number)
    number += 1
  end

  primes
end

#
# Main execution: compute and print the first 100 primes.
# Each prime is printed on its own line.
#
first_n_primes(100).each { |p| puts p }


#
# run:
#
# 2
# 3
# 5
# 7
# 11
# 13
# 17
# 19
# 23
# 29
# 31
# 37
# 41
# 43
# 47
# 53
# 59
# 61
# 67
# 71
# 73
# 79
# 83
# 89
# 97
# 101
# 103
# 107
# 109
# 113
# 127
# 131
# 137
# 139
# 149
# 151
# 157
# 163
# 167
# 173
# 179
# 181
# 191
# 193
# 197
# 199
# 211
# 223
# 227
# 229
# 233
# 239
# 241
# 251
# 257
# 263
# 269
# 271
# 277
# 281
# 283
# 293
# 307
# 311
# 313
# 317
# 331
# 337
# 347
# 349
# 353
# 359
# 367
# 373
# 379
# 383
# 389
# 397
# 401
# 409
# 419
# 421
# 431
# 433
# 439
# 443
# 449
# 457
# 461
# 463
# 467
# 479
# 487
# 491
# 499
# 503
# 509
# 521
# 523
# 541
#

 



answered Aug 18 by avibootz
...