java语言的科学与艺术-编程练习11.X
1 //使用Eratoshene滤网来生成2~1000之间的素数。 2 import acm.program.*; 3 public class Eratosthene extends ConsoleProgram { 4 public void run(){ 5 prime = new int[999]; 6 for(int i = 0; i < 999; i++) { 7 prime[i] = i + 2; 8 } 9 int j = 0; 10 int num =0; 11 while(true){ 12 int sign = prime[j]; 13 for(int i = j + 1; i < 999; i++) { 14 if(prime[i] % sign == 0) prime[i] = 0; 15 } 16 while(true){ 17 j++; 18 if(prime[j] != 0 || j > 997) break; 19 } 20 if(prime[j] == 0) break; 21 } 22 //输出素数 23 for(int i = 0; i < 999; i++) { 24 if(prime[i] != 0) { 25 print(prime[i] + " , "); 26 num++; 27 } 28 } 29 println("the number of the primes " + num); 30 } 31 // private instance variables 32 private int[] prime; 33 }
posted on 2013-01-03 14:36 mybluecode 阅读(203) 评论(0) 编辑 收藏 举报