求质数的算法

165 阅读1分钟

求出2到200以内的所有质数;

方法一:

public class Su {
    public static void main(String[] args) {
        for(int i=2;i<200;i++){
            boolean flag = true; //假定都是质数
            for(int j=2;j<i;j++){ //能被整除的一定不是质数
                if(i%j == 0){
                    flag = false; // 设置 为 不是质数
                    break;
                }
            }
            if(flag) System.out.println(i); 
        }
    }
}

方法二:
我们知道所有的数都可以被1和它本身整除,但是只能被1和它本身整除的整数就是质数。所有我们可以求出一个数可以从1到自己被整除多少次,每被整除一次加一,如果大于两次就不是质数。

public class Su {
    public static void main(String[] args) {    
        for(int i=2;i<201;i++){
            int a = 1;
            for(int j=1;j<i;j++){
                if(i%j==0){
                    a++;
                }
            }
            if(a=2){
                System.out.println(i);
            }
        }   
    }
}