news 2026/6/15 15:16:11

算法学习——素数筛法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法学习——素数筛法

素数:一个大于1的自然数,除了1和它本身以外不再有其他因数的数称为素数。

合数:一个大于1的自然数,除了1和它本身以外还有其他因数的数称为合数。

因数:整数a除以整数b(b≠0)的商正好是整数而没有余数,称b是a的因数。

一、试除法

一次次试看能不能被因子整除。

int is_prime(int n) { //这里用i<=n/i,防止溢出,如i=1e6 for (int i = 2;i <= n / i;i++) { if (n % i == 0) return 0; } return 1; }

二、埃式筛法——接近线性O(logN)

素数的倍数一定是合数。找出合数,剩下都是素数。

#include<iostream> #include<vector> using namespace std; const int n = 1e6 + 10; //创建一个bool数组来标记素数 //初始时假设所有数都是素数 vector <bool> isPrime(n + 1, true); int main() { //遍历2~sqrt(n)的所有数 for (int p = 2;p <= n / p;p++) { //如果p是素数 if (isPrime[p]) { //标记p所有的倍数为非素数 for (int i = p * p;i <= n;i += p) isPrime[i] = false; } } return 0; }

三、欧拉筛法——线性

埃式筛有一些重复标记,欧拉筛去除了这些标记。

整数唯一分解定理:任何大于1的正整数n都可以唯一分解为有限个质数的乘积,任何合数都有他对应的一个最小质因子。只通过这个最小质因子将其标记,这样就避免了重复标记。

每个数都只被它的最小质因数筛去。

#include<iostream> #include<bitset> using namespace std; const int maxn = 1e6 + 10; bitset<maxn> pri;//0为素数,1为合数 int primes[maxn]; int pp = 0; int main() { int N = 1e6; int cnt = 0; for (int i = 2;i <= N;i++) { if (!pri[i]) { primes[pp] = i; pp++; } for (int j = i;j <= pp;j++) { pri[primes[j] * i] = 1; if (i % primes[j] == 0) break; } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 4:34:00

Claude Code CLI 接入Kimi K2.5模型

用 Claude Code 的交互体验 国产大模型的低成本与低延迟&#xff0c;打造最佳编程工作流。 目录 安装 Claude Code CLI 1. 安装 Node.js 2. 通过 npm 安装 Claude Code 3. 验证安装 核心原理 方案一&#xff1a;接入 Kimi K2.5&#xff08;Moonshot&#xff09; 1. 获取…

作者头像 李华
网站建设 2026/6/15 13:18:39

AI应用架构师晋升路径:技术专家 vs 管理路线,该怎么选?

AI应用架构师晋升路径&#xff1a;技术专家 vs 管理路线&#xff0c;该怎么选&#xff1f; 摘要/引言 在人工智能&#xff08;AI&#xff09;蓬勃发展的当下&#xff0c;AI应用架构师凭借其在设计和构建AI驱动系统方面的关键作用&#xff0c;成为了行业中的热门职业。然而&…

作者头像 李华
网站建设 2026/6/10 14:59:51

维卡软化点与热变形试验设备:技术解析与操作指南

维卡软化点与热变形试验设备&#xff1a;技术解析与操作指南 维卡软化点与热变形试验设备&#xff1a;技术解析与操作指南 在材料科学与工程领域&#xff0c;非金属材料的热性能测试对于产品质量控制与研发创新具有至关重要的意义。维卡软化点测试仪与热变形试验设备作为实验…

作者头像 李华
网站建设 2026/6/14 16:18:17

CANN算子引擎解密:ops-nn如何重塑AIGC推理流水线

cann组织链接&#xff1a;https://atomgit.com/cann ops-nn仓库链接&#xff1a;https://atomgit.com/cann/ops-nn 当Stable Diffusion在3秒内生成高清图像&#xff0c;当LLaMA-3实现毫秒级文本续写——背后驱动这一切的&#xff0c;正是CANN算子引擎与ops-nn仓库构建的高性能推…

作者头像 李华
网站建设 2026/6/14 0:33:51

CANN赋能AIGC:深度剖析与实践,解锁智能生成新范式

个人首页&#xff1a; 永远都不秃头的程序员(互关)C语言专栏:从零开始学习C语言C专栏:C的学习之路K-Means专栏:K-Means深度探索系列本章所属专栏:CANN系列 文章目录一、CANN&#xff1a;AIGC模型的坚实基石二、深度实践&#xff1a;AIGC定制算子的开发与优化1. 算子原型定义&am…

作者头像 李华