每日一小练——Eratosthenes 筛选法
上得厅堂。下得厨房,写得代码。翻得围墙,欢迎来到睿不可挡的每日一小练!
题目:Eratosthenes筛选法
内容:
求质数是一个非常普遍的问题,通常不外乎用数去除。除到不尽时,给定的数就是质数。可是早在2000年前人们就知道了一个不必用除法而找出2~N的全部质数的方法。
如果一个非常奇妙的筛子,能够给出一个数。比如i,这个筛子有办法把i全部的倍数去掉。请用这种方法求出2~N之间的全部质数。即Eratosthenes筛选法。
我的解法:上来没多想,打开vs2013就敲了起来,问题果然非常easy,分分钟就超神。。奥,不正确就攻克了!
事实上就是把后面能够用前面倍数表示的数去掉,由于偶数都包括2,所以仅仅考虑奇数就能够了,这样算法中确实避免了除法,非常不错的。
- #include <iostream>
- using namespace std;
- int main()
- {
- const int lengthOfNum = 201;
- int x[lengthOfNum] = {1,1};
- int x_Index = 1;
- while(x_Index < lengthOfNum)
- {
- if(x[x_Index] == 0)
- {
- int j = x_Index+x_Index;
- while(j < lengthOfNum)
- {
- x[j] = 1;
- j += x_Index;
- }
- }
- x_Index += 2;
- }
- cout << lengthOfNum << "以内的所以质数为: " ;
- cout << "2 " ;
- int x_Index_Print = 1;
- while(x_Index_Print<lengthOfNum)
- {
- if(x[x_Index_Print] == 0)
- cout << x_Index_Print << " ";
- x_Index_Print += 2;
- }
- cout<<endl;
- return 0;
- }
实验结果为
欢迎大家增加每日一小练,嘿嘿!
每天练一练,日久见功夫,加油!
-End-
參考文献:《c语言名题精选百则》
每日一小练——Eratosthenes 筛选法的更多相关文章
- Eratosthenes筛选法计算质数
<C和指针>第6章第4道编程题: 质数就是只能被1和本身整除的数.Eratosthenes筛选法是一种计算质数的有效方法.这个算法的第一步就是写下所有从2至某个上限之间的所有整数.在算法的 ...
- 每日一小练——高速Fibonacci数算法
上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:高速Fibonacci数算法 内容:先说说Fibonacci数列,它的定义是数列:f1,f2....fn有例如以下规律: ...
- 每日一小练——Armstrong数
上得厅堂.下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:Armstrong数 内容: 在三位的正整数中,比如abc.有一些能够满足a^3+b^3+c^3=abc的条件,也就是说各 ...
- Eratosthenes筛选法构造1-n 素数表
筛选法:对于不超过n的每个非负整数p,删除2p,3p,4p...当处理完所有数之后,还没没删除的就是素数. 代码中进行了相应的优化. 本代码功能,输入一个数,输出从1-该数之间的素数.功能待完善,可将 ...
- Eratosthenes筛选法求解质数
问题说明: 除了自身之外,无法被其它整数整除的数称之为质数,要求质数很简单,但如何快速的求出质数则一直是程式设计人员与数学家努力的课题, 在这边介绍一个着名的 Eratosthenes求质数方法. 解 ...
- Eratosthenes筛选法
说到素数,最基本的算是一百以内的那些数了.这些数在数学竟赛中常常会被用到.比如说有这样一道题:“一百以内有多少在加2后仍然是素数的素数?”11和17就是这样的素数.如果对素数很熟悉的话,就能迅速得出答 ...
- 使用埃拉托色尼筛选法(the Sieve of Eratosthenes)在一定范围内求素数及反素数(Emirp)
Programming 1.3 In this problem, you'll be asked to find all the prime numbers from 1 to 1000. Prime ...
- 筛选实现C++实现筛选法
每日一贴,今天的内容关键字为筛选实现 筛选法 分析: 筛选法又称筛法,是求不超越自然数N(N>1)的全部质数的一种方法.据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274-19 ...
- 素数筛选法(prime seive)
素数筛选法比较有名的,较常用的是Sieve of Eratosthenes,为古希腊数学家埃拉托色尼(Eratosthenes 274B.C.-194B.C.)提出的一种筛选法.详细步骤及图示讲解,还 ...
随机推荐
- Perl Symbolic Reference
看一些模块的代码,很多时候通过*glob的方式来改变变量或者函数,这种方法称为Symbolic reference. 首先看一下*glob的结构,这个在之前的博文已经讲过,不做细述: SV = PVG ...
- Linux —— Shell编程之变量赋值和引用
Linux的shell编程是一种非常成熟的编程语言,它支持各种类型的变量.有三种主要的变量类型:环境变量.内部变量和用户变量. 环境变量(environment variable)是系统环境的一部分, ...
- struts.xml配置文件标签详解
1.package: 作用:分模块化开发. 属性: name:包名. extends:由于struts2框架的一些核心功能的配置都在struts-default包中,所以一般都都直接或间接地继承str ...
- Unity 安卓Jar包的小错误
好久没写博客了,也就意味着好久没有学习了,近几天在搞Unity接入有米的SDk遇到了一点小错误,今天早上解决了,和大家分享下! 1,我们的目的是在在U3D中调用Android产生的Jar包,首先在Ec ...
- Unity 3D 连接Mysql数据库
要想使用Unity直接连接数据库需要以下几个动态库
- MySQL5.6 windows7下安装及基本操作
图形界面安装MySQL5.6关于图形界面的安装,网上相关相关资料比较多,此处省略安装过程.安装过程中选择安装路径.所需组件及root账号密码.1.目前针对不同用户,MySQL提供了2个不同的版本:My ...
- LAMP的安装
一,LAMP的安装流程:mysql.apache.php或者apache.mysql.php.php放到最后的原因是,php在编译安装的时候是依赖于前2者的. 二,Mysql的安装: 1.下载mysq ...
- (转)android多国语言适配
android多国语言文件夹 android多国语言文件夹文件汇总如下:(有些语言的书写顺序可能跟中文是相反的) 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中 ...
- css3动画学习的例子来源
1.这里面有不同的鼠标经过图片效果,图片变大变小,出现文字,向左移动等等 http://dinolatoga.com/demo/webkit-image-hover-effects/ 2.有一篇博客, ...
- Best Time to Buy and Sell Stock (java)
有一组数组代表股票的价格 一次买一次卖如何得到最大利润? public int maxProfit(int[] prices) { if(prices.length==0)return 0; int ...