Guidance about binary / data files for JTREG tests
Brian Burkhalter
brian.burkhalter at oracle.com
Mon Apr 28 22:09:10 UTC 2014
For grins here’s an alternative implementation of your algorithm that is slower but likely takes less memory:
private static BitSet primesBS(int n) {
int nbits = n + 1;
BitSet bs = new BitSet(nbits);
bs.set(0, 2, true);
for (int p = 2; p * p < n;) {
for (int i = 2 * p; i < nbits; i += p) {
bs.set(i, true);
}
do {
++p;
} while (bs.get(p));
}
return bs;
}
Note that in this case a set bit means NOT prime.
Brian
On Apr 28, 2014, at 11:52 AM, Florian Weimer <fweimer at redhat.com> wrote:
> private static boolean[] primes(int n) {
> boolean[] primes = new boolean[n + 1];
> Arrays.fill(primes, true);
> primes[0] = false;
> primes[1] = false;
> for (int p = 2; p * p < n; ) {
> for (int i = 2 * p; i < primes.length; i += p)
> primes[i] = false;
> do
> ++p;
> while (!primes[p]);
> }
> return primes;
> }
More information about the core-libs-dev
mailing list