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

南汇做网站公司深圳网站建设系统

南汇做网站公司,深圳网站建设系统,wordpress form,湛江专业网站建设怎么做啊,哈喽,小伙伴们大家好。我是#张亿,今天呐,学的是理论知识.质数打表 为什么需要质数打表 我们已经学习了如何判断一个数是不是质数了,但是还不够。假设要判断很多很多个数是不是质数的时候,之前的学习的…

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

为什么需要质数打表

我们已经学习了如何判断一个数是不是质数了,但是还不够。假设要判断很多很多个数是不是质数的时候,之前的学习的方法效率不够高。因为,如果 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.khdw.cn/news/18607.html

相关文章:

  • 浙江网站建设实验心得免费b站推广网站有哪些
  • 济宁网站运营策略引流推广平台有哪些
  • 北京网站制作多少钱黄页
  • 培训机构网站制作近期重大新闻
  • 专业的移动网站建设楚雄今日头条新闻
  • 网站建设flash优化教程网官网
  • 印刷 网站源码搜狗推广效果好吗
  • 长沙做网站公司 上联网络计算机培训课程
  • 顺德网站制作案例机构关键词在线下载
  • 在网页做动态图片的网站如何自己做推广
  • 网站开发需要学些什么关键词怎么优化
  • 网站建站解决方案营销策划方案公司
  • 下瓦房做网站公司产品怎样推广有效
  • 免费网站客服系统app开发费用标准
  • 网站运营规划关键词排名怎么做好
  • 云服务器安装win系统做网站网页设计论文
  • 做网站 php和javaseo工程师
  • 怎么创建公司网站空间企业网站优化服务公司
  • 西樵建网站谷歌搜索引擎网页版入口
  • 本地门户网站源码快速排名服务平台
  • 温州网站建设公司排名百度一下官网首页下载
  • 深圳市疫情最新消息seo软件优化工具软件
  • 网站建设与网页设计案例教程代写文章
  • 做演讲视频的网站网站seo优化发布高质量外链
  • 江西宜春市建设局网站济南网站优化公司哪家好
  • 网站案例响应式本地网络seo公司
  • 网站建设 犀牛seo教程网站优化推广排名
  • wordpress左边栏轻松seo优化排名 快排
  • shopify建站费用怎么从网上找国外客户
  • 查企业免费百度seo收录软件