PAT 1013 乙等(数素数)c++

来源:互联网 发布:rs232转网络 编辑:程序博客网 时间:2024/05/23 17:49

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 4347 53 59 61 67 71 73 79 83 8997 101 103


思路:判断素数的方法不当会引起超时,这里采用的判断n为素数n的方法为从2开始循环判断到sqrt(n),可以减少比较次数。


#include <iostream>#include <cmath>using namespace std;bool isSushu(int n){for(int i=2; i<=sqrt(n);i++){if(n % i==0){return false;}}return true;}int main(){int m(0),n(0);cin >> m >> n;int count(0);int i=2;int mcount(0);while(1){if(isSushu(i)){    count++;    if(m<=count&& count<=n){     mcount++;if(count!=n){     if(mcount!=0 && mcount%10!=0)     cout << i<<" ";     else     cout << i << endl;}else{cout << i;}}}if(count>n)break;i++;}return 0;}


0 0
原创粉丝点击