zoukankan      html  css  js  c++  java
  • 素数查找的两种算法

    • 通过寻找公约数来判断,最经典的算法
    boolean flag = true;
    for (int i = 2; i <= n; i++) {
        for (int j = 2; j <= Math.sqrt(i); j++) {
    	if (i % j == 0) {
             flag = false; //如果i%j==0说明这个数是合数,则让bool=false
            }
        }
    
        if (flag) {
             System.out.println(i);//这里是素数
        }
       
         flag = true;
    
    }
    • 通过Boolean分类拆分奇偶,并通过奇数倍数自增剔除奇数中的合数
    boolean[] bool1 = new boolean[n+1];
    for (int i = 3; i <= n; i +=2) { //基数相加,这个会丢失2
        if (!bool1[i]) {
    	for (int j = i + i; j <= n; j += i) { bool1[j] = true; }
         }
    			
       if (!bool1[i]) {
            System.out.println(i);//这里是素数
    
        }
    }
    二者速度差别 
    n=10000
    time1=14
    time2=1
  • 相关阅读:
    第五天
    第四天
    第三天
    四则运算2
    对于搜狗输入法
    用户及用户场景分析
    总结
    第一阶段总结
    第七天
    第六天
  • 原文地址:https://www.cnblogs.com/jeasion/p/10758349.html
Copyright © 2011-2022 走看看