zoukankan      html  css  js  c++  java
  • 查找10000以内的质数

    质数,只能被自己和1整除的整数。

    判断要点1:质数数组默认为[2], n若能被任意质数数组中的值整除,则不是质数

    (function displayPrime() {
      let primeArray = [2];
      for (let i=3; i< 10000; i++) {
         let iIsPrime = true;
         for (let prime of primeArray) {
           if (i % prime === 0) {
             iIsPrime = false;
             break;
           }
         }
         if (iIsPrime) {
           primeArray.push(i);
         }
      }
      console.info(primeArray);
    })();

    判断要点2:偶数一定不是质数

    (function displayPrime() {
      let time1=(new Date()).valueOf();
      let primeArray = [2];
      for (let i=3; i< 10000; i+=2) {
         let iIsPrime = true;
         for (let prime of primeArray) {
           if (i % prime === 0) {
             iIsPrime = false;
             break;
           }
         }
         if (iIsPrime) {
           primeArray.push(i);
         }
      }
      console.log('timeout: '+ ((new Date()).valueOf() - time1))
      console.info(primeArray);
    }());  

    判断要点3:开平方的结果是整数的整数不是质数

    (function displayPrime() {
      let time1=(new Date()).valueOf();
      let primeArray = [2];
      for (let i=3; i< 10000; i+=2) {
         let sqrt=Math.sqrt(i), borderNum = i%sqrt;
         let iIsPrime = !(borderNum === 0 );
         if (!iIsPrime) {
           continue;
         }
         for (let prime of primeArray) {
           if (i % prime === 0) {
             iIsPrime = false;
             break;
           }
         }
         if (iIsPrime) {
           primeArray.push(i);
         }
      }
      console.log('timeout: '+ ((new Date()).valueOf() - time1))
      console.info(primeArray);
    }());
    

      

  • 相关阅读:
    HDU_5057_分块
    HYSBZ_2002_分块
    HDU_1166_树状数组
    HDU_5692_dfs序+线段树
    多重背包
    二进制中一的个数
    康托展开
    vector, map, queue,set常用总结
    错误票据
    高精度计算
  • 原文地址:https://www.cnblogs.com/yiyitong/p/9397631.html
Copyright © 2011-2022 走看看