上得厅堂。下得厨房,写得代码。翻得围墙,欢迎来到睿不可挡的每日一小练!

题目: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语言名题精选百则》

最新文章

  1. AR初体验:宣传G20
  2. Network - FTP与SFTP
  3. iOS 用webView加载后台返回的HTML数据
  4. mxnet的python包导入的前前后后
  5. XmlHttpRequest对象的获取及相关操作
  6. Linux 账户信息显示和实现账户安全
  7. Linux下用命令格式化U盘
  8. UVA 707 - Robbery(内存搜索)
  9. 初级FTP搭建
  10. java字符串比较及小数浮点型的使用
  11. H5-html基础
  12. BZOJ 3566: [SHOI2014]概率充电器 [树形DP 概率]
  13. Github客户端以及Git shell的使用
  14. localStorage 和 sessionStorage 的用法
  15. 如何解决请求URL长度超过配置的maxurlLength值问题
  16. 配置thunderbirdmail
  17. OkHttp拦截器的实现原理
  18. 关于spring xml文件中的xmlns,xsi:schemaLocation(转)
  19. 串行通讯协议--起止式异步通讯协议(UART)
  20. react setstate

热门文章

  1. http的无状态无连接到底是什么含义
  2. jar 查找多jar包中类的办法
  3. SHDP--Working With HBase (二)之HBase JDBC驱动Phoenix与SpringJDBCTemplate的集成
  4. Windows下配置sphinx+reStructuredText详解
  5. android——字体颜色跟随状态改变
  6. asp生命周期
  7. [转]标准C++字符串string以及MFC6.0字符串CString的tokenize和split函数
  8. has leaked ServiceConnection com.baidu.location.LocationClient
  9. 1206: B.求和
  10. UVA 10375 Choose and divide