天天看點

Prime(素數)判定 (java)

素數定義:大于1,且隻有1和它本身兩個因數,即不能寫成 n=p*q(p、q均不為1)

判定算法:

方法一:根據定義從2到n-1,依次判斷n是否能整除,如果都不能則為素數

private boolean isPrime(int m){
        for(int i=2;i<m;i++){
            if(m%i==0){
                return false;
            }
        }
        return true;
    }
           

方法二:方法一的改進,n=p*q, p,q裡面必然有個數小于等于sqrt(n),是以隻需要判斷1<x<=sqrt(n)部分

private boolean isPrime(int m){
        if(m%2==0){
            return false;
        }
        for(int i=2;i<Math.sqrt(m);i++){
            if(m%i==0){
                return false;
            }
        }
        return true;
    }