A PHP primes number generator originally created by Pol Dellaiera in its drupol/primes-bench repo.
composer require marcoconsiglio/phprimes-generator
OptimusPrime is the library endpoint to use the Prime3 class which is the best performing prime number generator written by Pol Dellaiera.
Keep in mind that:
- the generator in question continues forever, so it is highly recommended to set a limit (by default it is the first 500 prime numbers);
- random access is not possible, like in
$primes[$i]; - if you rewind the iterator, it start over again.
use MarcoConsiglio\PHPrimesGenerator\OptimusPrime;
// Generate the first 5 prime numbers.
$primes = new OptimusPrime(5)->generate();
// For older PHP versions use this
// $primes = (new OptimusPrime(5))->generate();
foreach($primes as $number) {
echo $number.PHP_EOL;
}2
3
5
7
11
The OptimusPrime class uses an integer safe iterator which throws exception MaximumIntegerIteratorValueReached when PHP_INT_MAX + 1 value is reached.
use MarcoConsiglio\PHPrimesGenerator\OptimusPrime;
try {
$primes = new OptimusPrime(PHP_MAX_INT)->generate();
foreach($primes as $number) {
echo $number.PHP_EOL;
}
} catch (MaximumIntegerIteratorValueReached $e) {
echo $e->getMessage();
}Do you rapidly need primes numbers on a text file? Uncomment the test method OptimusPrimeTest::test_record_primes_numbers_to_file(), set a $limit of your preference and launch the same test method with:
vendor/bin/phpunit --filter=test_record_primes_numbers_to_fileYou will find your file in prime_numbers.txt;
You can find API documentation in docs/html.