:heavy_check_mark: 素数列挙
(math/prime_list.hpp)

Verified with

Code

#pragma once
#include<vector>
#include<bitset>
#include<cmath>
#include<set>

/**
 * @brief 素数列挙
 */

std::bitset<500'000'001> p;
std::vector<long long> prime_list(int n) {
    p.set();
    p[0]=0;
    for(int i=2;i*i<=n;++i){
        if(!p[i])continue;
        for(int j=2*i;j<=n;j+=i)p[j]=0;
    }
    std::vector<long long>list;
    for(int i=2;i<=n;++i)if(p[i])list.push_back(i);
    return list;
}
#line 2 "math/prime_list.hpp"
#include<vector>
#include<bitset>
#include<cmath>
#include<set>

/**
 * @brief 素数列挙
 */

std::bitset<500'000'001> p;
std::vector<long long> prime_list(int n) {
    p.set();
    p[0]=0;
    for(int i=2;i*i<=n;++i){
        if(!p[i])continue;
        for(int j=2*i;j<=n;j+=i)p[j]=0;
    }
    std::vector<long long>list;
    for(int i=2;i<=n;++i)if(p[i])list.push_back(i);
    return list;
}
Back to top page