1013 数素数 (20)(20 分)

1013 数素数 (20)(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
作者: CHEN, Yue
单位: PAT联盟
时间限制: 200ms
内存限制: 64MB
代码长度限制: 16KB

题目要求实现 从第几个素数到第几个素数 所以我们可以写一个子函数判断素数 然后计数换行即可。

#include<bits/stdc++.h>
using namespace std;

int tdc(int x) {
	
	for (int i = 2; i <= sqrt(x); i++)
		if (!(x%i))
			return 0;
	return x>=2?1:0; // 只有正数才是质数 虽然这道题没有考察
}

void solve() {

	int cnt = 1;
	int open,last;
	cin >> open >> last;
	for (int i=2,count=1;cnt<=last;i++) { // count 换行操作
		if (i != 2 && i % 2 == 0) continue;
		if (cnt < open&&tdc(i))
			cnt++;
		else if(cnt>=open&&tdc(i)&&cnt<=last){
			count==1?cout << i:cout<<" "<<i;
			count++;
			if (count > 10)
				printf("\n", count = 1);
			cnt++;
		}
	}
}

int main() {

	solve();
	return 0;
}

猜你喜欢

转载自blog.csdn.net/oshuaifeng/article/details/80435219
今日推荐