首页 > 其他分享 >质数筛

质数筛

时间:2022-09-02 17:26:00浏览次数:54  
标签:std 10 cnt int 质数 primes

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int n, primes[N];
int get_prime(int u)
{
    int cnt = 0;
    memset(primes, true, sizeof primes);
    primes[1] = false;
    for(int i = 2; i <= u; i ++ )
    {
        if(primes[i])
        {
            cnt ++ ;
            for(int j = i; j <= u / i; j ++ )
                primes[j * i] = false;
        }
    }
    return cnt;
}
int main()
{
    cin >> n;
    cout << get_prime(n) << endl;


    return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int n, primes[N];
int get_prime(int u)
{
    memset(primes, true, sizeof primes);
    primes[1] = false;
    int cnt = 0, q[N];
    for(int i = 2; i <= u; i ++ )
    {
        if(primes[i]) q[cnt ++ ] = i;
        for(int j = 0; q[j] <= u / i; j ++ )
        {
            primes[q[j] * i] = false;
            if(i % q[j] == 0) break;
        }
    }
    return cnt;
}
int main()
{
    cin >> n;
    cout << get_prime(n) << endl;


    return 0;
}

 

标签:std,10,cnt,int,质数,primes
From: https://www.cnblogs.com/leyuo/p/16650606.html

相关文章

  • java质数算法
    importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importjava.stream.Collectors;importjava.stream.Stream;publicclassMain{publ......
  • 质数判定的常数优化
    注意:下面可能有部分数学符号使用不规范,看懂就行。如何迅速判断\(n\)是否为质数?方法一枚举\(i\)满足\(1<i<n\),则\(n\)不是质数,当且仅当全部的\(i\nmidn\)......
  • leetcode1175-质数排列
    质数排列分别找出质数和合数的数量,将两者的阶乘相乘即可classSolution{publicintnumPrimeArrangements(intn){intcnt=0;for(inti=2;......