mirror of
https://github.com/Noratrieb/benchmarks.git
synced 2026-01-14 10:45:04 +01:00
34 lines
974 B
Java
34 lines
974 B
Java
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
public class DefaultPrimes implements Primes {
|
|
|
|
// (will make the code 15% slower)
|
|
@SuppressWarnings("ForLoopReplaceableByForEach")
|
|
public List<Integer> primes(int max) {
|
|
List<Integer> primesList = new ArrayList<>(max);
|
|
|
|
primesList.add(2);
|
|
|
|
for (int i = 3; i < max; i += 2) { //go through all numbers
|
|
boolean isPrime = true;
|
|
double sqrRoot = Math.sqrt(i);
|
|
for (int j = 0; j < primesList.size(); j++) { //test each number
|
|
int prime = primesList.get(j);
|
|
if (prime >= sqrRoot) {
|
|
break;
|
|
}
|
|
if (i % prime == 0) { //i = test number, j = some known prime
|
|
isPrime = false;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (isPrime) {
|
|
primesList.add(i);
|
|
}
|
|
}
|
|
|
|
return primesList;
|
|
}
|
|
}
|