public class intsieve {
- static void sievenumber(int n, int[] no_prime, int p) {
- int i;
- for (i = p*2; i <= n; i += p)
- no_prime[i] = 1;
- }
+ static void sievenumber(int n, int[] no_prime, int p) {
+ int i;
+ for (i = p*2; i <= n; i += p)
+ no_prime[i] = 1;
+ }
- static void sieving(int n, int[] no_prime) {
- int p;
- for (p = 2; p <= n; p++) {
- if (no_prime[p] != 0) sievenumber(n, no_prime, p);
- }
- }
+ static void sieving(int n, int[] no_prime) {
+ int p;
+ for (p = 2; p <= n; p++) {
+ if (no_prime[p] == 0) sievenumber(n, no_prime, p);
+ }
+ }
- static public void main(String [] s) {
-
- int count=0;
- int p;
+ static public void main(String [] s) {
+ int count=0;
+ int p;
- int n = Integer.parseInt (s[0]);
- int times = Integer.parseInt (s[1]);
+ int n = Integer.parseInt (s[0]);
+ int times = Integer.parseInt (s[1]);
- int no_prime[] = new int[n+1];
+ int no_prime[] = new int[n+1];
- System.out.print ("Start sieving primes from 2 to ");
- System.out.print (n);
- System.out.print (" for ");
- System.out.print (times);
- System.out.println (" times");
+ System.out.print ("Start sieving primes from 2 to ");
+ System.out.print (n);
+ System.out.print (" for ");
+ System.out.print (times);
+ System.out.println (" times");
- for (; times > 0; times--) {
- for (p = 0; p < n+1; p++)
- no_prime[p] = 0;
+ for (; times > 0; times--) {
+ for (p = 0; p < n+1; p++)
+ no_prime[p] = 0;
- sieving(n, no_prime);
+ sieving(n, no_prime);
- count = 0;
- for (p = 2; p <= n; p++)
- if (no_prime[p] != 0) count++;
- }
-
- System.out.print (".... done, number of primes: ");
- System.out.println (count);
+ count = 0;
+ for (p = 2; p <= n; p++)
+ if (no_prime[p] == 0) {
+ count++;
}
-
-
}
-
\ No newline at end of file
+
+ System.out.print (".... done, number of primes: ");
+ System.out.println (count);
+ }
+}