2.16. Generowanie liczb pierwszych

Problem

Chcemy generować kolejne liczby pierwsze bądź uzyskać listę wszystkich liczb pierwszych nieprzekraczających ustalonego limitu.

Rozwiązanie

Generator liczb pierwszych ma w języku Ruby postać klasy Prime. Kolejną liczbę pierwszą w sekwencji możemy uzyskać, wywołując metodę Prime#succ.

require 'mathn'
primes = Prime.new
primes.succ                                     # => 2
primes.succ                                     # => 3
#---
primes.each { |x| puts x; break if x > 15; }
# 5
# 7
# 11
# 13
# 17
primes.succ                                     # => 19

Dyskusja

Liczby pierwsze są zarówno obiektem intensywnych badań teoretycznych, jak i podstawą większości algorytmów szyfrowania, nic więc dziwnego, że zaproponowano wiele algorytmów ich generowania oraz sprawdzania, czy dana liczba jest liczbą ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.