当前位置: 首页 > news >正文

欧拉筛素数板子

class Euler	{
private:unsigned int cnt;//素数筛范围大小std::vector<int> sieve;std::vector<bool> composite;
public:Euler() {}Euler(const unsigned int x) {this -> cnt = x;composite.resize(x * 2, false); sieve.emplace_back(0);}//进行cnt范围内筛选void Sifting(){for(int i = 2; i <= cnt; i++){if(!composite[i])sieve.emplace_back(i);for(int j = 1; sieve[j] * i <= cnt; j++){composite[sieve[j] * i] = true;if(i % sieve[j] == 0)break;}}}//快速判断x是否为素数bool Determine_prime(const unsigned int x)	{if (x == 1)return false;if (x == 2 || x == 3)return true;if (x % 6 != 1 && x % 6 != 5)return false;for (int i = 5; i * i <= x; i += 6)if (x % i == 0 || x % (i + 2) == 0)return false;return true;}//返回cnt范围内第x个素数,没有返回0unsigned int Re_sieve(const unsigned int x){if(x > sieve.size())return *sieve.begin();return this -> sieve[x];}//返回cnt范围内素数个数unsigned int Resum_sieve(){return this -> sieve.size() - 1;}
};


http://www.mrgr.cn/news/30956.html

相关文章:

  • MySQL之索引(1)(索引概念与作用、红黑树、b树、b+树)(面试高频)
  • SpringBoot框架在共享汽车管理中的应用
  • 从0开始深度学习(27)——卷积神经网络(LeNet)
  • Git删除本地已经merge到远程的分支
  • 【wpf】ResourceDictionary 字典资源的用法
  • 管道(Pipes)、过滤器(Filters)和拦截器(Interceptors)
  • 硬盘数据恢复必备:4 款强大硬盘数据恢复软件推荐!
  • [ComfyUI]Flux:更强融图!阿里最新重绘CN模型,生态加速器
  • OpenCV_图像像素读写操作
  • 什么是css?
  • 实现快速排序(Quicksort)
  • 【Git】Git Commit Angular规范详解
  • IMS 中private user id/public user id的格式
  • 基于Springboot+vue实现的Cosplay论坛系统
  • SwiftData 共享数据库在 App 中的改变无法被 Widgets 感知的原因和解决
  • 新160个crackme - 060-snake
  • 条件编译代码记录
  • Nomad Web服务终于成熟了!
  • 学习使用Docker
  • Tableau Einstein 重磅亮相,融合 AI 与数据云提供统一且无缝的分析新体验!
  • 需求3:照猫画虎
  • 第314题|参考!如何做到【一题多解】|武忠祥老师每日一题
  • Linux操作系统 进程(3)
  • 免密执行远程服务命令
  • Revit学习记录-版本2018【持续补充】
  • Streamlit:使用 Python 快速开发 Web 应用