首页 > 代码库 > 查找质数的算法优化版

查找质数的算法优化版

package com.my.testPrimeNumber; import java.util.ArrayList;import java.util.List; public class PrimeNumber {         public boolean isPrimeNum(int n)    {        //第一步过滤偶数,使范围减少一半        if(n==2)        {            return true;        }        else if(n%2==0)        {            return false;        }        //处理奇数,一个素数中不会有偶数因子,但是他的平方根的边界可能是偶数,所以边界单独处理        //这样写,让局部变量的作用域更小,且只计算一次初始化变量        for(int i=1,sqrt=(int) Math.sqrt(n),borderNumTest = n%sqrt;i<n; i+=2)        {            System.out.println(borderNumTest);            if(borderNumTest==0)                {                return false;            }            else if(i!=1 && n%i==0)            {                return false;            }        }                return true;    }        public void findPrimeNum(int x)    {        List<Integer> ss = new ArrayList<Integer>(2);        for(int j = 2; j<x;j++)        {            if(isPrimeNum(j))            {                ss.add(j);            }        }        System.err.println(ss);        System.err.println(ss.size());    }        public static void main(String[] args) {     new PrimeNumber().findPrimeNum(100);    }} 

查找质数的算法优化版,新东西可能有错大家可以自己看看

查找质数的算法优化版