EchoDemo's Blogs

PAT B1013 数素数

令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

题目代码:

#include<iostream>
using namespace std;

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

int main() {
  int M, N, i = 2, j = 0, k = 0;
  cin >> M >> N;
  while (k < N) {
    if (prime(i)) {
      k++;//统计目前是第几个素数
      if (k >= M) {
        cout << i;
        j++;
        if (j % 10 == 0) cout << endl;
        else {
          if (k < N) cout << " ";
        }
      }  
    }
    i++;
  }
  return 0;
}
🐶 您的支持将鼓励我继续创作 🐶
-------------本文结束感谢您的阅读-------------