File: sieve.java

package info (click to toggle)
groovy2 2.2.2%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 23,916 kB
  • sloc: java: 136,570; xml: 948; sh: 486; makefile: 67; ansic: 64
file content (27 lines) | stat: -rw-r--r-- 811 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// $Id: sieve.java,v 1.1 2004-05-23 07:14:28 bfulgham Exp $
// http://www.bagley.org/~doug/shootout/

public class sieve {
    public static void main(String args[]) {
        int NUM = Integer.parseInt(args[0]);
        boolean [] flags = new boolean[8192 + 1];
        int count = 0;
        while (NUM-- > 0) {
            count = 0;
            for (int i=2; i <= 8192; i++) {
                flags[i] = true;
            }
            for (int i=2; i <= 8192; i++) {
                if (flags[i]) {
                    // remove all multiples of prime: i
                    for (int k=i+i; k <= 8192; k+=i) {
                        flags[k] = false;
                    }
                    count++;
                }
            }
        }
        System.out.print("Count: " + count + "\n");
    }
}