• java实现第N个素数


    素数就是不能再进行等分的整数。比如:7,11。而9不是素数,因为它可以平分为3等份。一般认为最小的素数是2,接着是3,5,... 
    
    请问,第100002(十万零二)个素数是多少?
    
    请注意:2 是第一素数,3 是第二个素数,依此类推。
    
    
    /*
      筛法
      2 3 4 5 6 7 8 9 10 11 12 。。。。。
      2 3 _ 5 _ 7 _ 9 _ 11 _ ....
      2 3 _ 5 _ 7 _ _ _ 11 _ ....
      ...
    */
    
    public class SuShu
    {
    	public static void main(String[] args)
    	{
    		int N = 1000 * 1000 * 10;
    		int x = 100001;
    		
    		byte[] a = new byte[N];
    		
    		for(int i=2; i<N/2; i++)
    		{
    			if(a[i]==1) continue;  //  和数没有资格参加筛法
    			
    			for(int k=2; k<=N/i; k++)
    			{
    				if(i*k<N) a[i*k] = 1;
    			}
    		}
    		
    		
    		int m = 0;
    		for(int i=2; i<N; i++)
    		{
    			if(a[i]==0)
    			{
    				m++;
    				if(m==x) System.out.print(i + " "); 
    			}
    		}
    		
    		
    		System.out.println("m=" + m);
    	}
    }
    
    
    
  • 相关阅读:
    单例模式
    堆排序--leetcode 215
    二叉树--路径问题
    二叉树--前中后序两两结合构建二叉树
    CglibProxy
    JdkProxy
    git config --global http.sslVerify false
    PdfUtil
    idea中创建的文件类型无法识别
    sql优化
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12947236.html
Copyright © 2020-2023  润新知