求50以内的全部素数

素数,又叫做质数。除了1和它本身以外不能整除其他的数

特别注意,0和1,都不是素数,素数有像2,3,5,7,11......

因此在编写代码的时候,要注意,利用素数的本身特性进行解题。

方法一(代标记判断素数)

因为思想很简单,用两层for循环嵌套,外层的控制数字,内层的要遍历每一个数,看能否被外层数字整除。如果能够被整除,就标记它。最后看是否被标记,标记了就不是素数。


代码:


public class Main {
	public static void main(String[] args) {
	       //求素数的值
	       int flag=0;
	       for(int i=2;i<=50;i++){//素数是从2开始的。
	           for(int j=2;j<i;j++){
	               if(i%j==0){
	                   flag=1;//被标记过,说明他是合数,就不用继续整除了
	                   break;
	               }
	           }
	           if(flag==0){
	               System.out.print(i+" ");
	           }
	           flag=0;
	       }
	}
}

运行结果:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47


方法二:(不用标记)

假设一个数是素数,那j的值能从2,3,...,i-1,所以这样的数一定是素数。所以可以用j>=i,

来判断它到底是不是素数。


public class Main {
	public static void main(String[] args) {
	       //求素数的值
	        int i,j;
	       for( i=2;i<=50;i++){
	           for( j=2;j<i;j++){
	               if(i%j==0){
	                   break;
	               }
	           }
	            if(j>=i){
	                   System.out.print(i+" ");
	               }
	       }
	}
}

 运行结果:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 
注:如有错误,请务必指出,一起讨论,一起进步!


版权声明:本文为m0_57455311原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。