1 import java.util.Scanner;
2
3 public class SieveOfEratosthenes {
4 public static void main(String[] args) {
5 Scanner input = new Scanner(System.in);
6 System.out.print("Find all prime numbers <= n, enter n: ");
7 int n = input.nextInt();
8
9 boolean[] primes = new boolean[n + 1];
10
11
12 for (int i = 0; i < primes.length; i++) {
13 primes[i] = true;
14 }
15
16 for (int k = 2; k <= n / k; k++) {
17 if (primes[k]) {
18 for (int i = k; i <= n / k; i++) {
19 primes[k * i] = false;
20 }
21 }
22 }
23
24 final int NUMBER_PER_LINE = 10;
25 int count = 0;
26
27 for (int i = 2; i < primes.length; i++) {
28 if (primes[i]) {
29 count++;
30 if (count % NUMBER_PER_LINE == 0)
31 System.out.printf("%7d\n", i);
32 else
33 System.out.printf("%7d", i);
34 }
35 }
36
37 System.out.println("\n" + count +
38 " prime(s) less than or equal to " + n);
39 }
40 }