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

南汇做网站公司广东seo网站优化公司

南汇做网站公司,广东seo网站优化公司,用vultr做网站,政府采购网招标公告官网啊,哈喽,小伙伴们大家好。我是#张亿,今天呐,学的是理论知识.质数打表 为什么需要质数打表 我们已经学习了如何判断一个数是不是质数了,但是还不够。假设要判断很多很多个数是不是质数的时候,之前的学习的…

啊,哈喽,小伙伴们大家好。我是#张亿,今天呐,学的是理论知识.质数打表

为什么需要质数打表

我们已经学习了如何判断一个数是不是质数了,但是还不够。假设要判断很多很多个数是不是质数的时候,之前的学习的方法效率不够高。因为,如果 n 是质数,需要从 2 枚举到 sqrt(n) ,如果题目里面要你几百几千个数逐一判断是否是质数,则很可能会超时。

所谓 质数打表,是指先通过一段比较高效的代码,完成了前期运算,把每一个数是不是质数的信息 表格化 ,在程序的其它位置,如果需要判断一个数是不是质数,只需要去这个预先计算好的表格里面查一下就可以了。

质数打表的算法思路

我们只需要把合数找到,那么自然就能找到质数了。而找合数的思路,则是:从小到大去找质数,每找到一个新的质数,则去把这个质数的倍数标记出来,这些倍数就是合数,而那些自始至终没有被标记过的数就是质数。例如,当我们指导 13 是质数的时候,我们就把 26,39,52,65... 等一系列的合数标记出来。课程E.倍数 的这条题就是演练这个算法思想的。

下面是质数打表的代码:

bool flag[1000001];
void prepare_prime() //质数打表的函数 
{int i,j;for(i=2;i<=1000000;i++){if(!flag[i]) //表示 i是一个质数{for(j=2;i*j<=1000000;j++) //对 j 的倍数(不包含自己)全部设置标记,表示这些数是合数 flag[i*j] = true; }}
}

Copy

执行了上面的 prepare_prime( ) 函数,就产生了 1000000 以内的质数表了。当 flag[i] 为true,表示 i 是合数,flag[i] 为 false 则表示 i 是质数。 1 是特殊的,1 既不是质数又不是合数,单独判断。

常见错误

本来题目要你找出 n 以内的素数,但是你打表的时候的第一层循环只循环到 sqrt(n) ,这是错误的,这会漏掉了很多 比 sqrt(n) 大的质数。

http://www.tj-hxxt.cn/news/6036.html

相关文章:

  • 保定制作公司网站怎么营销推广
  • 扬州网站建设小程序互联网推广公司靠谱吗
  • 深圳公明网站制作北京百度推广开户
  • 网站制作和设计需要多少钱精准营销通俗来说是什么
  • 展示网站多少钱一个淘宝seo排名优化软件
  • 政府网站建设评分标准关键词推广工具
  • 长治市建设工程交易网seo外包公司如何优化
  • 珍岛做网站怎么样网店无货源怎么做
  • asp.net个人网站空间优化培训课程
  • 东莞网站建设推广多少钱发布软文
  • 网站建设利益搜索引擎优化的重要性
  • 建设监理收录网站cps推广联盟
  • 网站建设公司自适应源码线上营销策略有哪些
  • 东莞建网站前端培训班一般多少钱
  • wordpress get categories网站标题算关键词优化吗
  • 邢台网站建设公司哪家好一点网络营销推广方案步骤
  • 设计网站的三个要素三亚百度推广公司
  • 如何做网站推广及优化搜索引擎推广简称
  • 怎样把已经有的网站做推广企业网络营销推广案例
  • 长春网站网站推广公司设计微商引流人脉推广软件
  • 重庆专业企业建设网站住房和城乡建设部官网
  • 石家庄今日重大新闻事件seo整站优化服务教程
  • 网站后台忘记账号密码如何优化网络延迟
  • 网站认证空间四川省人民政府
  • wordpress 多站点模式 帐号是通用的么北京疫情发布不再公布各区数据
  • 企业招聘信息发布平台深圳短视频seo教程
  • wordpress更换网址长沙靠谱关键词优化公司电话
  • 南昌哪里学做网站可以免费推广的平台
  • 做图专业软件下载网站专业黑帽seo
  • 运维工程师主要做什么百度seo排名点击软件