PAT 1013 数素数

来源:互联网 发布:linux 限制ip访问端口 编辑:程序博客网 时间:2024/05/17 02:19

令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
代码实现:

#include <iostream>#include <vector>#include <algorithm>#include <cstdio>#include <cmath>#include <cstdlib>#include <cstring>using namespace std;/* 判断一个数是不是素数 */bool isPrimeNum(const int num){    if(num == 2)    {        return true;    }    int len = (int)sqrt(num);    int i = 0;    for(i = 2; i <= len; i++)    {        if(num % i == 0)        {            return false;        }    }    return true;}int main(){    int M = 0, N = 0;    int num = 2, cnts = 0;    vector<int> vecPrimer;    int i = 0;    cin >> M >> N;    while(cnts < N)    {        /* 判读是不是素数 */        if (isPrimeNum(num) == true)        {             vecPrimer.push_back(num);             cnts++;        }        num++;    }    /* 输出满足的数据 */    cnts = 0;    for(i = M; i <= N; i++)    {        if(cnts == 0)        {            cout << vecPrimer[i-1];        }        else        {            cout << " " << vecPrimer[i-1];        }        if(cnts == 9)        {            cout << endl;            cnts = 0;        }        else        {            cnts++;        }    }    return 0;}




0 0