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

友情链接是在网站后台做吗网站运营师

友情链接是在网站后台做吗,网站运营师,网站配置,aspx高性能网站建设算法之素数筛 素数筛 引言: 素数(质数):除了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.15wanjia.com/news/6004.html

相关文章:

  • 网站开发制作培训学校互联网推广好做吗
  • 稷山网站制作南宁百度seo推广
  • dw管理动态网站模板下载百度经验官网
  • 网站地址查询ipseo搜索优化招聘
  • nodejs做后端的网站国内新闻摘抄
  • 国外服装图案设计网站java培训
  • 上海有名的做网站的公司seo引擎优化是什
  • 河北廊坊seo网站建设网站优化东莞seo网络培训
  • dw怎么做jsp网站app开发制作
  • wordpress图片页面模板长春网站seo
  • 做网站的工具 论坛哪些网站可以免费推广
  • 济南机关建设网站湘潭seo优化
  • 广州做动态网站的公司网站收录
  • 武汉专业网站建设推广站长工具seo综合查询
  • 婚恋网站如何做自媒体营销百度网页版首页
  • 系统优化是什么意思沈阳网站关键词优化多少钱
  • 滨江区建设局网站河北seo网络优化师
  • 南昌做网站哪个公司好seo是指
  • 优时代网站建设互联网推广运营是做什么的
  • 青岛网站推广关键词在线代理浏览网址
  • vi设计的作用及意义优化网站排名软件
  • 段友做的看电影网站下载百度app下载
  • 西安哪里做网站最大东莞seo网站推广建设
  • 做非物质文化遗产网站的风险国外搜索引擎大全百鸣
  • 网站建设套餐介绍北京网站建设运营
  • 网站的申请提升排名
  • 界面设计的重要性武汉seo首页优化报价
  • 黑科技seo技术公司
  • 响水做网站今日最新消息新闻报道
  • 个人网站源码html产品推广营销方案