1013 数素数

题目

令 Pi表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 PM 到 P​N的所有素数。

输入格式
输入在一行中给出 M 和 N,其间以空格分隔。

输出格式
输出从PM 到 P​N的所有素数,每 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

解析

  先打素数表,到 M 个就停止,然后输出即可,这里建议记住打素数表的写法

答案

#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;

int s[10001];
bool isPrime(int a){
    for(int i = 2 ; i <= sqrt(a) ; i++){
        if(a % i == 0){
            return false;
        }
    }
    return true;
}
int main(){
    int m,n;
    cin >> m >> n;
    int i = 0,j = 2;
    while(i <= n){
        if(isPrime(j)){
            s[i ++] = j;
        }
        j ++;
    }
    for(i = m - 1; i < n ;i++){
        if((i - m + 2) % 10 == 0 || i == n - 1){
            cout << s[i] << endl;
        }else{
            cout<< s[i] << " "; 
        }
    }
}
posted @ 2020-08-04 21:12  小马小马最可爱  阅读(105)  评论(0)    收藏  举报