PAT 乙级 1013 (方法 + 代码)

1013 数素数 (20 分)

令 P​i表示第 i 个素数。现任给两个正整数 M≤N≤10^4​​ ,请输出 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

解题思路

C++版

把从2开始的数遍历一下,在判断的过程种记录下一共有多少个满足条件的素数和该行输出了几个数,然后根据记录的数字进行相应的处理即可

#include
#include

using namespace std;

bool deal(int n)
{
	for(int i = 2; i*i <= n; i++ )
	{
		if(n % i == 0)
			return false;
	}
	return true;
}

int main()
{
	int n,m;
	cin>>n>>m;
	int time = 0,time1 = 0;
	for(int i = 2; time != m; i++ )
	{
		if(deal(i))
		{
			time++;
			if(time >= n )
			{
				cout<<i;
				time1++;
				if(time != m)
					if(time1 < 10)
						cout<<' ';
					else
					{
						cout<<'\n';
						time1 = 0;
					}
			}	
		}	
	}

	system("pause");
	return 0;
}

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