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

    Description:

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

    Credits:
    Special thanks to @mithmatt for adding this problem and creating all test cases.

    埃拉托斯特尼筛法

    要得到自然数n以内的全部素数,必须把不大于  
    的所有素数的倍数剔除,剩下的就是素数。
     
    给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个质数5筛,把5留下,把5的倍数剔除掉;不断重复下去......。
     
    注意:j的起始是i*i,因为i*i之前的数会被外层的i遍历到,所以不用再次检查
    int countPrimes(int n) {
        vector<bool> prime(n, true);
        prime[0] = false, prime[1] = false;
        for (int i = 0; i < sqrt(n); ++i) {
            if (prime[i]) {
                for (int j = i*i; j < n; j += i) {
                    prime[j] = false;
                }
            }
        }
        return count(prime.begin(), prime.end(), true);
    }
  • 相关阅读:
    spring Pom jar包版本管理
    Liunx 命令整理
    Centos&Nginx
    docker-compose
    .net core MemoryCache缓存
    .net core 程序集帮助类
    .NET CORE API Swagger
    Spring Boot (1)
    SQL Server生成实体
    1、认识和安装MongoDB
  • 原文地址:https://www.cnblogs.com/sdlwlxf/p/5136303.html
Copyright © 2011-2022 走看看