04月11, 2019

数素数

题目描述

令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出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

代码:

#include <iostream>
#include <vector>

using namespace std;

/*判断是否为素数*/
bool isPrime(int n) {
    for (int i = 2; i*i<=n; i++) {
        if (n % i == 0)
            return false;
    }
    return true;
}

int main()
{
    int count = 0, M, N, num = 2;
    vector<int> v;
    cin >> M >> N;
    while (count < N) {
        if (isPrime(num)) {
            count++;
            if (count >= M) {
                v.push_back(num);
            }
        }
        num++;
    }
    count = 0;
    for (int i = 0; i <v.size(); i++) {
        count++;
        if (count % 10 != 1)
            printf(" ");
        printf("%d", v[i]);
        if (count % 10 == 0)
            printf("\n");
    }
    return 0;
}

本文链接:https://lyuly.com/post/patbasic1013.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。