in reply to Prime Number Finder
I offer the following as a balance of speed, elegance, and brevity, or at the very least, a demonstration of TMTOWTDI.
The algorithm is: take the first number off the top of the list, call it a prime, filter the rest of the list for multiples, repeat.
Note: the grep is fairly costly. Find a better algorithm if you're looking for all primes up to, say, 100,000.use strict; sub primes { my @n = (2..shift); my @p; while (@n && (push @p, shift @n)) { @n = grep { $_ % $p[-1] } @n; } return @p } # find all primes through 100 print join ',',primes(100);
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Prime Number Finder
by Anonymous Monk on Nov 03, 2003 at 05:34 UTC |
In Section
Cool Uses for Perl