1013. 数素数 (20)
时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。
输入格式:
输入在一行中给出M和N,其间以空格分隔。
输出格式:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
输入样例:5 27输出样例:
11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103
分析:最初想法是想计算出10000个素数保存在数组中,选择输出,但是觉得不妥,最终实现为产生一个素数,如果在所求位置范围内则输出。过程中居然卡在没有每次都初始化flag这个bool变量,真是醉了= =
代码如下
#include<iostream> #include<math.h> using namespace std; int main(){ int m,n; cin>>m>>n; int i=2; bool flag=true; int count=0,num=0; int q=0; while(num<n-m+1){ q=(int)sqrt(i*1.0); flag=true; for(int j=2;j<=q;j++){ if(i%j==0){ flag=false; break; } } if(flag){ count++; } if(flag&&count>=m){ num++; if(num%10==0) cout<<i<<endl; else if(num!=n-m+1)cout<<i<<" "; else cout<<i; } i++; } cin.get(); cin.get(); return 0; }运行结果如下:
评测结果
时间 | 结果 | 得分 | 题目 | 语言 | 用时(ms) | 内存(kB) | 用户 |
---|---|---|---|---|---|---|---|
4月14日 15:10 | 答案正确 | 20 | 1013 | C++ (g++ 4.7.2) | 10 | 304 | vicya王 |
测试点
测试点 | 结果 | 用时(ms) | 内存(kB) | 得分/满分 |
---|---|---|---|---|
0 | 答案正确 | 1 | 256 | 12/12 |
1 | 答案正确 | 1 | 304 | 2/2 |
2 | 答案正确 | 1 | 304 | 2/2 |
3 | 答案正确 | 1 | 256 | 1/1 |
4 | 答案正确 | 10 | 304 | 1/1 |
5 | 答案正确 | 1 | 256 | 1/1 |
6 | 答案正确 | 1 | 172 | 1/1 |