第一种:
1 public class Sushu { 2 public static void main(String[] args) { 3 // TODO Auto-generated method stub 4 int j; 5 boolean flag; 6 for(int i=2;i<1000;i++){ 7 flag=false; 8 for(j=2;j<i;j++){ 9 if(i%j==0){ 10 flag=true; 11 break; 12 } 13 } 14 if(flag==false){ 15 System.out.print(i+" "); 16 } 17 } 18 } 19 }
第二种:
1 public static void main(String[] args) { 2 // TODO Auto-generated method stub 3 int j; 4 boolean flag; 5 for(int i=2;i<1000;i++){ 6 flag=false; 7 for(j=2;j<i/2;j++){ 8 if(i%j==0){ 9 flag=true; 10 break; 11 } 12 } 13 if(flag==false){ 14 System.out.print(i+" "); 15 } 16 } 17 }
第三种:
1 public class Sushu { 2 public static void main(String[] args) { 3 // TODO Auto-generated method stub 4 int j; 5 boolean flag; 6 for(int i=2;i<1000;i++){ 7 flag=false; 8 for(j=2;j<=Math.sqrt(i);j++){ 9 if(i%j==0){ 10 flag=true; 11 break; 12 } 13 } 14 if(flag==false){ 15 System.out.print(i+" "); 16 } 17 } 18 } 19 }
推荐使用第三种效率更高
本文提供了三种不同的Java程序实现方式来生成2到1000之间的所有素数。第一种方法通过双重循环检查每个数是否能被小于它的数整除;第二种方法优化了循环条件,仅检查到该数的一半;第三种方法进一步提高了效率,只检查到根号该数为止。

1万+

被折叠的 条评论
为什么被折叠?



