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

重庆石桥铺网站建设公司乌班图系统做网站

重庆石桥铺网站建设公司,乌班图系统做网站,网页游戏开服表就上囧游村,湖北电商的网络推广算法之素数筛 素数筛 引言: 素数(质数):除了1和自己本身之外,没有任何因子的数叫做素数(质数) 朴素筛法(优化版) 概念: 朴素筛法:是直接暴力枚举2到当前判断的数x(不包括),然后看在这范围内是否存在因…

算法之素数筛

素数筛

引言

  • 素数(质数)除了1和自己本身之外,没有任何因子的数叫做素数(质数)

朴素筛法(优化版)

概念

  • 朴素筛法:是直接暴力枚举2到当前判断的数x(不包括),然后看在这范围内是否存在因子,如果存在就不是素数,不存在就是素数,时间复杂度为O(n*n)
  • 优化版:优化版是用到了一个数学性质进行优化,使其只需要判断2到sqrt(x)的范围内,是否存在x的因子即可,时间复杂度为O(n*sqrt(n))

数学性质如果一个数x能够被一个大于1且小于等于sqrt(x)的整数整除,那么x必定能够被另一个大于1且大于sqrt(x)的整数整除

#include <iostream>
using namespace std;//朴素筛素数判断算法时间复杂度:O(n)
bool isprime1(int x){if(x==1) return false;if(x==2) return true;for(int i=2;i<x;++i){if(x%i==0) return false;}return true;
}//优化版素数判断算法时间复杂度:O(sqrt(n))
bool isprime(int x){if(x==1) return false;if(x==2) return true;for(int i=2;i<x/i;++i){if(x%i==0) return false;}return true;
}int main() {//假设筛选出1-1000的素数for(int i=1;i<=1000;i+=2){if(isprime(i)) cout<<i<<endl;}system("pause");return 0;
}

欧拉筛(线性筛)

概念

  • 欧拉筛利用合数的数学性质,可以将素数筛的算法优化到时间复杂度为O(n)

合数除了1和自身之外还有其他正因子(除了 1 和自身以外的能够整除它的正整数),并且大于1的整数

数学性质:对于任意一个合数 x,它一定可以被其最小质因数(即最小的能整除 x 的质数)整除

算法具体操作

  1. 初始化一个标记数组vis[]和记录素数数组prime,vis所有元素初始化为false
  2. 2遍历到n(要筛选素数范围),如果vis[i]为false,则将i标记为素数,并将i记录在prime数组中,并将i的倍数j(j=i*i,i*i+i…)标记为合数(true)
  3. 遍历完所有的数后,prime数组中的数都为素数

总结:

在这个过程中,每个合数都会被标记为其最小质因数,这样能够确保每个合数只会被标记一次。由于每个合数只会被其最小质因数标记,因此在遍历过程中,每个合数只会被标记一次,而非多次,从而避免了重复标记,提高了效率。

const int N=1e8+10;
int prime[N];
bool vis[N];//欧拉筛总体时间复杂度为O(n)
void isprimes(int n){int cnt=0;for(int i=2;i<=n;++i){if(!vis[i]) prime[cnt++]=i;for(int j=0;prime[j]<=n/i;++j){vis[i*prime[j]]=true;if(i%prime[j]==0) break;}}
}

尾言

完整版笔记也就是数据结构与算法专栏完整版可到我的博客进行查看,或者在github库中自取(包含源代码)

  • 博客1: codebooks.xyz
  • 博客2:moonfordream.github.io
  • github项目地址:Data-Structure-and-Algorithms
http://www.yayakq.cn/news/652154/

相关文章:

  • 什么语言做网站好网站建立服务
  • 大淘客构建自己的网站wordpress 默认上传路径
  • 网站案例网站建设线上销售怎么做推广
  • 做暧暧网站在线看虚拟币网站建设
  • 制作网站的公司还能赚钱吗哈尔滨做网站电话
  • 2014年沈阳建设银行网站团队做网站的收获
  • 网站开发顶岗周记wordpress媒体库文件打不开
  • 化妆品行业的网站开发建网站服务器怎么选
  • 相亲网站如何做自我介绍wordpress 评论 折叠
  • 锦州网站建设排行榜wordpress网店主题
  • 短链生成网站阿里云主机如何安装wordpress
  • 企业网站系统西安学建网站
  • 我公司是做网站开发的怎么纳税汕头seo计费管理
  • 网站开发需要什么人员网站关键词可以做几个
  • 淄博网站建设公司乐达沈阳注册公司
  • 东莞网站建设aj工作室手机免费制作软件下载
  • 站长工具是做什么的武清网站开发tjniu
  • 重庆最火的网站免费创建app网站
  • 11网站建设waoccwordpress调用用户数据
  • 最好的开发网站建设价格仿腾讯游戏网站源码
  • 网站安全建设管理制度河南省汝州文明建设门户网站
  • 旅游网站设计需求分析从零开始网站开发
  • 网站建设与管理课程视频织梦cms网站模板修改
  • 池州网站建设哪家好给网站做
  • 网站优化垂直化好还是扁平化好网页版游戏排行榜田田田田田田田田
  • 网站seo网络优化公司上海八号桥 网站建设
  • 建设银行个人网站显示不了做网站个网站要多少钱
  • 现货投资网站建设中文网站建设模板下载
  • 建设银行宁波分行招聘网站.net和php哪个做网站好
  • 成品网站源码1688自动跳转软件技术专科有出路吗