查找质数的算法优化版

Posted 牵牛花

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查找质数的算法优化版相关的知识,希望对你有一定的参考价值。

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);
    }
}
 

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

以上是关于查找质数的算法优化版的主要内容,如果未能解决你的问题,请参考以下文章

因数分解算法周期查找算法(简化)

C++质数判断算法的时间测试

在给定数字之后查找质数

最短路-Dijkstra算法:朴素版&堆优化版(Java详解)

算法竞赛模板(数论)

从搜索文档中查找最小片段的算法?