[PAT-乙级]B1013 数素数(20 分)

PAT:B1013 数素数(20 分)

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

输入格式:

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

输出格式:

输出从 P​M​​ 到 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

代码:

#include
#include
using namespace std;

const int maxn = 10010;
bool isPrime(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, count = 0;
	bool isFalg;
	scanf("%d %d", &m, &n);
	while(true) {
		isFalg = isPrime(i);
		if(isFalg) {
			count++;
			if(count >= m && count <= n) {
				printf("%d", i);
				if((count-m+1) % 10 != 0 && count < n) printf(" ");
				else printf("\n");
			}
		}
		i++;
		if(count == n) break;
	}
	
	return 0;
}

 

你可能感兴趣的:(PAT-Basic(乙级))