PAT乙级 数素数 (20)

打印素数表,题中说明10000个素数,大概数组范围开到1100000就ok了。

还有一点就是1不是素数,而且循环的时候,第二个循环应该为2,不然就全标记了。

这个最后有一个地方格式错误了,行末不能有空格,我没考虑到最后一行最后的空格,因为最后一行不一定满10个数,改过之后AC。

#include 
#include 
#include 
#include 
using namespace std;

vector prime;
void printprime()
{
	int i,j;
	bool num[1100000];
	memset(num,true,sizeof(num));
	
	num[1] = false;
	
	long sqrtn = sqrt(1100000);
	for(i=2;i=1100000)
			break;
			num[j*i] = false;
		}
	}
	
	for(i=1;i<110000;i++)
	{
		if(num[i] == true)
			prime.push_back(i);
	}
}

int main() {
	int begin,end;
	int i,j;
	cin>>begin>>end;
	prime.push_back(0);
	printprime();
	
	for(i=begin,j=1;i<=end;i++,j++)
	{
		cout<


你可能感兴趣的:(数据结构算法学习)