Initial revision
[cacao.git] / tests / intsieve.java
1
2 // Primzahlen sieben,  Java-Version
3
4 public class intsieve {
5         
6         static void sievenumber(int n, int[] no_prime, int p) {
7                 int i;
8                 for (i = p*2; i <= n; i += p)
9                         no_prime[i] = 1;
10                 }
11                                 
12         static void sieving(int n, int[] no_prime) {
13                 int p;
14                 for (p = 2; p <= n; p++) {
15                         if (no_prime[p] != 0) sievenumber(n, no_prime, p);
16                         }
17                 }
18                         
19         static public void main(String [] s) {
20
21                 int count=0;
22                 int p;
23                 
24                 int n = Integer.parseInt (s[0]);
25                 int times = Integer.parseInt (s[1]);
26                                 
27                 int no_prime[] = new int[n+1];
28         
29                 System.out.print ("Start sieving primes from 2 to ");
30                 System.out.print (n);
31                 System.out.print (" for ");
32                 System.out.print (times);
33                 System.out.println (" times");
34                 
35                 for (; times > 0; times--) {    
36                         for (p = 0; p < n+1; p++)
37                                 no_prime[p] = 0;
38                         
39                         sieving(n, no_prime);
40                 
41                         count = 0;
42                         for (p = 2; p <= n; p++)
43                                 if (no_prime[p] != 0) count++;
44                         }
45                                         
46                 System.out.print (".... done, number of primes: ");
47                 System.out.println (count);
48                 }
49                 
50                 
51         }
52