zoukankan      html  css  js  c++  java
  • 204 Count Primes

    • 什么是质数?

    只有1和它本身两个因数的数,就是质数(或素数);
    除了1和它本身以外,还有别的因数的数,就是合数;

    • 质数被用在了哪里?

    1,现在密码学,RSA加密问题,bob,alice,蒂夫三个小伙伴之间的通信的问题
    2、在汽车变速箱齿轮的设计上,相邻的两个大小齿轮齿数最好设计成质数,以增加两齿轮内两个相同的齿相遇啮合次数的最小公倍数,可增强耐用度减少故障。
    3、在害虫的生物生长周期与杀虫剂使用之间的关系上,杀虫剂的质数次数的使用也得到了证明。实验表明,质数次数地使用杀虫剂是最合理的:都是使用在害虫繁殖的高潮期,而且害虫很难产生抗药性。
    4、以质数形式无规律变化的导弹和鱼雷可以使敌人不易拦截。
    5、多数生物的生命周期也是质数(单位为年),这样可以最大程度地减少碰见天敌的机会。

    • 编程实现求质数的问题? 1,给定一个数N,打印出小于N的所有质数。2,给定一个数N,打印出自然数中最小的N个质数。

    https://program-think.blogspot.com/2011/12/prime-algorithm-1.html  [作者编程随想],作者显然和等着找工作的人不在一个维度上。

    • 试除法,

          因为从判断一个数x是不是质数,按照定义:把x除以[1,..,(x-1)]看余数是否为零?如果在除的过程中余数为零,则x不是质数。

          因为x如果由(除自身以外)的因数(什么是质因数),那么这个因数肯定小于等于x/2,可以判断  [1,...,x/2],看是否余数为零。

          又因为x,除了2以外,所有可能的质因数都是奇数,那么可以先判断2,再从[3...x/2]中的奇数即可

          又因为如果x不是质数,那么x的因子肯定是成对出现m1,m2的;m1,m2二个数中肯定有一个大于√x ,另一个小于√x ,那么可以先判断2,再从[3,..,√x ]中的奇数即可

          最后只需要  判断[3...  √x ] 中的质数即可。

    • 筛选法,

        首先,2是公认最小的质数,先把2的倍数去掉

        剩下2的那些大于2的数里面,最小的是3,那么3也是质数,

        接着把3的倍数都去掉,最小的数是5,5也是质数。

    来自维基百科的图片

    =============利用位图思想来做存储容器。

    leetcode 204 Count Primes

    Description:

    Count the number of prime numbers less than a non-negative number, n.

    class Solution {
    public:
        int countPrimes(int n) {
            bitset<10000000> b;
            for(int i = 0;i<n;i++){
                b.set(i,1);
            }
            int re = 0;
            for(int i = 2;i*i<n;i++){
                if(b[i]){
                    for(int k = i;k<(n+1);k = k+i){
                        if(k==i)continue;
                        b.set(k,0);
                    }
                }///
            }///for
    
            for(int i = 2;i<n;i++){
                if(b[i]){
                    re++;
                }
            }
            return re;
        }
    };

     

  • 相关阅读:
    python3安装 MAC
    MacOS三个比较接地气实用的终端命令
    maya界面字体怎么设置大小?
    Mac 下 Android Studio 连 夜神模拟器 调试以及真机调试方法
    [macOS] Mojave10.14 夜神安卓模拟器启动问题
    解决MAC电脑系统设置的安全性与隐私下通用没有任何来源选项
    一个分析“文件夹”选择框实现方法的过程
    windows下nginx+php简单配置
    使用windbg抓取崩溃文件和分析的过程
    解决工作中遇到的一个"打开,保存"文件框的bug的过程
  • 原文地址:https://www.cnblogs.com/li-daphne/p/5549557.html
Copyright © 2011-2022 走看看