Java Reference
In-Depth Information
7
public static void
main(String[] args) {
8 System.out.println("This program will tell you all prime");
9 System.out.println("numbers up to a given maximum.");
10 System.out.println();
11
12 Scanner console =
new
Scanner(System.in);
13 System.out.print("Maximum number? ");
14
int
max = console.nextInt();
15
16 List<Integer> primes = sieve(max);
17 System.out.println("Prime numbers up to " + max + ":");
18 System.out.println(primes);
19 }
20
21 // Returns a list of all prime numbers up to given max
22 // using the sieve of Eratosthenes algorithm.
23
public static
List<Integer> sieve(int max) {
24 List<Integer> primes =
new
LinkedList<Integer>();
25
26 // add all numbers from 2 to max to a list
27 List<Integer> numbers =
new
LinkedList<Integer>();
28
for
(
int
i = 2; i <= max; i++) {
29 numbers.add(i);
30 }
31
32
while
(!numbers.isEmpty()) {
33 // remove a prime number from the front of the list
34
int
front = numbers.remove(0);
35 primes.add(front);
36
37 // remove all multiples of this prime number
38 Iterator<Integer> itr = numbers.iterator();
39
while
(itr.hasNext()) {
40
int
current = itr.next();
41
if
(current % front == 0) {
42 itr.remove();
43 }
44 }
45 }
46
47
return
primes;
48 }
49 }
Search WWH ::
Custom Search