当前位置:   article > 正文

C/C++ 判断质数 质数筛_筛数法找质数c++

筛数法找质数c++
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cmath>
  5. #include<vector>
  6. #include<algorithm>
  7. using namespace std;
  8. vector<int> prime;
  9. const int MAXN = 1e5;
  10. bool IsPrime[MAXN];
  11. // Ver2 : 适用数量级超大的质数判断 (质数筛 是核心中的核心)
  12. // 思想 : 1、用一个辅助数组IsPrime[MAXN],标记每个下标是否为质数
  13. // 2、再用一个可变长度的数组 vector<int> prime 存储所有质数
  14. // (使用vector 需要 #include<vector>)
  15. void IniIsPrime(){ // IniIsPrime() 用来初始化(找出) MAXN 范围内的所有质数
  16. for(int i = 0 ; i < MAXN ; ++i){
  17. IsPrime[i] = true; // 先默认所有位置都是质数
  18. }
  19. IsPrime[0] = false; // 剔除 0 和 1 (不是质数)
  20. IsPrime[1] = false;
  21. for(int i = 2 ; i < MAXN ; ++i){
  22. if(!IsPrime[i]) continue; // 不是质数就跳过
  23. prime.push_back(i); // 是质数就压进(push_bac
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/75353
推荐阅读
相关标签
  

闽ICP备14008679号