【C++】快速判断质数(6的倍数法)、快速获取n以下的质数(欧拉筛)板子
快速判断质数(6的倍数法)板子
bool judge(int num) {if (num == 2 || num == 3) {return true;}//如果num不在6的倍数附近,则不是素数if (num % 6 != 1 && num % 6 != 5) {return false;}//若num在6的倍数附近,用6的倍数附近的数来判断for (int i = 6; i <= sqrt(num); i += 6) {if (num % (i - 1) == 0 || num % (i + 1) == 0) {return false;}}return true;
}
欧拉筛板子
#include <iostream>
using namespace std;const int INF = 100000000;int num[INF] = { 0 }; //存储质数,num[0]记录了质数的个数
int flag[INF] = { 0 }; //判断第n个数,flag[n]=1代表n不为质数void find(int max) {for (int i = 2; i <= max; i++) {if (!flag[i]) {num[++num[0]] = i; //num[0]记录了质数的个数}for (int j = 1; j <= num[0] && i * num[j] <= max; j++) {flag[i * num[j]] = 1;if (i % num[j] == 0) {break;}}}
}int main()
{int max = 100;find(max);cout << max << " 内的质数有 " << num[0] << " 个" << endl;cout << "分别是:" << endl;for (int i = 1; i <= num[0]; i++) {cout << num[i] << '\t';if (i % 5 == 0) {cout << endl;}}return 0;
}
运行结果如下
【C++】快速判断质数(6的倍数法)、快速获取n以下的质数(欧拉筛)板子相关推荐
- 素数筛选法(埃氏筛 欧拉筛)
质数筛选法 文章目录 质数筛选法 前言 一.埃氏筛 O(nloglogn)O(nloglogn)O(nloglogn) 二.欧拉筛O(n)O(n)O(n) 总结 前言 当需要大范围内的素数时,例如1e ...
- F. 1.小W 的质数(prime)[欧拉筛再理解]
Description 小X是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的情感.小X认为,质数是一切自然数起源的地方. 在小X的认知里,质数是除了本身和1以外,没有其他因数的数字.但 ...
- 筛选质数,埃氏筛和欧拉筛(线性筛)
求len之内的所有的素数 除了比较常用的开根号的求法,还有两种更好的方法,埃氏筛和线性筛.其中埃氏筛更好理解,而线性筛(欧拉筛)不好理解但是更快. 埃氏筛 #include <bits/stdc ...
- 【筛质数】——朴素筛,埃式筛,欧拉筛
题目描述: 题目分析: 这道题可以用,朴素筛,埃氏筛,欧拉筛来写. 普通筛: 时间复杂度:O(n logn) 时间复杂度太高,会超时的!!(9/10) #include <iostream> ...
- 数据结构与算法:欧拉筛——查找素数(质数)的最优解算法 O(n)
前言:众所周知,查找素数是算法题中最基础的问题,也是经常被问到的问题. 但往往同学们找不到最优解法,因而导致 时间复杂度 过大而超出限制. 下面列出常用的求 ...
- 牛客 华华给月月出题 (积性函数+欧拉筛+快速幂)
题目描述 华华刚刚帮月月完成了作业.为了展示自己的学习水平之高超,华华还给月月出了一道类似的题: ⊕符号表示异或和,详见样例解释. 虽然月月写了个程序暴力的算出了答案,但是为了确保自己的答案没有错,希 ...
- 快速判断素数,六素数法
最近翻百科的时候突然看到一个很不错素数筛选方法,叫六素数法,于是写了一下代码记录了下来.这是一种快速的判断一个数为素数的方法. 首先解释一下什么叫六素数.六素数的英文为 "sexy prim ...
- 信奥日记——数论(快速幂、埃氏筛、欧拉筛)
文章目录 前情提要 正文 1.快速幂 思路 代码 完整代码(包含取模) 2.埃拉托斯特尼筛法(埃氏筛) 原理 思路 代码 完整代码(求 2 到 n 之间的素数) 3.线性筛 思路 代码 完整代码 前情 ...
- AcWing 868. 筛质数(欧拉筛模板)
题目连接 https://www.acwing.com/problem/content/870/ 思路 欧拉筛模板,学习链接:https://acmer.blog.csdn.net/article/d ...
最新文章
- 第六章勘误以及Normalization算法不完整
- 前端学习(2055)vuejs的认识和特点介绍
- Android中WebService的应用
- VCSA6.7 备份和还原
- Bailian2786 Pell数列【数列】(POJ NOI0102-1788,POJ NOI0103-1788)
- 批处理文件怎么写_Spring Boot快速入门:批处理与任务调度
- 如何在Macbook安装Linux双系统
- Microsoft SQL Server 双机热备份,实时同步
- Spark开发:Spark大数据开发编程示例
- 记录一次网线水晶头的安装
- web嵌入flowplayer流媒体播放器
- BlueCoat ProxySG Attack Detection功能
- 创新创意ssm计算机毕业设计题目300例之java农村电商网站3252s
- 程序员吃饭段子Java吃完就走_爆笑段子:一朋友是个程序员,有一次和他吃饭,他愁眉苦脸的说...
- Electron屏幕截图的技术方案MacWindows
- NeurIPS 2022 | 何恺明团队新作:MAE扩展到视频!学习时空表示,最优Mask比例高达90%!...
- 查询计算机网络凭据,查看电脑账密利器 - 电脑凭据管理器图文使用教程
- 我的面试经历--缘起
- python Word 文档
- 搭建BI平台之前的准备工作