MOOC清华《程序设计基础》第4章第1题:找出ab间的素数(用筛法做)
来源:互联网 发布:人工智能加大贫富差距 编辑:程序博客网 时间:2024/06/15 07:05
题目描述
(再次申明:本上机题全部由程序自动评判对错,所以没有要求的输出请一定不要出现,具体参照样例输入和输出即可)
输入两个正整数a、b,找出[a, b]之间的素数,由小到大输出。(2 <= a <= b <=1000000)
每一行输入两个正整数,两数之间有一个空格,可能有多行输入!
tips:利用while(cin>>a>>b)语句实现循环输入变量
输出[a,b]之间的素数,素数之间用一个空格隔开,每个输出占一行
2 53 11样例输出
2 3 53 5 7 11
#include <iostream>using namespace std;int main(){int a[10] = {0}, b[10] = {0};int i = 0;bool sieve[10][10000];bool IsPrime_Sieve(bool sieve[], int a, int b);void OutputOfArray(bool sieve[],int a, int b); while(cin>>a[i]>>b[i]) {IsPrime_Sieve(sieve[i], a[i], b[i]);i++;}for(int j = 0; j < i; j++)OutputOfArray(sieve[j], a[j], b[j]); return 0;}bool IsPrime_Sieve(bool sieve[], int a, int b){for(int i = 2; i <= b; i++) //这个循环用来给筛子赋初值,注意不要漏掉任何一个筛孔 sieve[i] = true;for(int d = 2; d * d <= b; d++) //这个循环用枚举因子法判断素数 if( sieve[d] ) //如果 d 没有被筛掉 for(int n = d * d; n <= b; n += d)sieve[n] = false; //把非质数 n 筛掉 }void OutputOfArray(bool sieve[],int a, int b) { for(int i = a; i <= b; i++) if( sieve[i] ) cout << i << ' '; cout << endl; }
形如 while(cin>>a>>b) 的语句是用来判断cin输入流是否正常,退出循环的方法为Ctrl+Z。
阅读全文
0 0
- MOOC清华《程序设计基础》第4章第1题:找出ab间的素数(用筛法做)
- MOOC清华《程序设计基础》第4章第1题:找出ab间的素数(用枚举法做)
- MOOC清华《程序设计基础》第4章第1题:筛法求ab间的素数测试版
- MOOC清华《程序设计基础》第4章第3题:不相同的个数(用筛法做)
- MOOC清华《程序设计基础》第4章:筛法求素数
- MOOC清华《程序设计基础》第5章第1题:判断数列的对称性
- MOOC清华《程序设计基础》第1章第4题:求解方程
- MOOC清华《程序设计基础》第6章第1题:n级台阶问题(递推法)
- MOOC清华《程序设计基础》第4章:插花游戏-求素数
- MOOC清华《程序设计基础》第4章:筛法数人数
- MOOC清华《程序设计基础》第3章第2题:谁的饭量小
- MOOC清华《程序设计基础》第3章第5题:求特定数的和
- MOOC清华《程序设计基础》第5章第2题:破损棋盘的八皇后问题
- MOOC清华《程序设计基础》第2章第4题:解方程2
- MOOC清华《程序设计基础》第3章第4题:求平方和2
- MOOC清华《程序设计基础》第5章第4题:用递归算法实现选择排序
- MOOC清华《程序设计基础》第1章第1题:三角形求面积
- MOOC清华《程序设计基础》第1章第2题:求周长
- UDP的Socket
- Jquery超简单遮罩层实现代码
- C++输入、输出优化
- PHPer中如何成为崛起最快的1%
- 欢迎使用CSDN-markdown编辑器
- MOOC清华《程序设计基础》第4章第1题:找出ab间的素数(用筛法做)
- (推荐)Spring MVC 处理Http请求过程
- 通往高阶Java的20个必学要点
- viewpager小案例广告条效果
- 63 linux内核的SPI设备驱动模型及应用程序调用SPI控制器的方法
- HashMap和Hashtable的区别
- Intellij IDEA svn的使用
- gitlab创建SSH Key 过程
- iOS,论代码的整洁性,可读性,可修改性。