poj 1595

水题

代码:

#include<iostream>
#include<fstream>

using namespace std;

int a[1201],n;
int b[1201],top;

void prim(){
	int i,j,k;
	if(n==1)
	{
		a[1]=1;
		top=1;
		return;
	}
	if(n==2)
	{
		a[1]=1;
		a[2]=2;
		top=2;
		return;
	}
	a[1]=1;a[2]=2;
	memset(b,0,sizeof(b));
	top=2;
	for(i=2;i<=n;i+=2)
		b[i]=1;
	for(i=3;i<=n;i+=2)
		if(b[i]==0)
		{
			a[++top]=i;
			for(j=i*2;j<=n;j+=i)
				b[j]=1;
		}
}

void read(){
//	ifstream cin("in.txt");
	int i,j,k,m;
	while(cin>>n>>m)
	{
		prim();
		cout<<n<<' '<<m<<": ";
		if(top%2)
		{
			top=(top+1)/2;
			if(top>m-1)
				for(i=top-m+1;i<=top+m-1;i++)
					cout<<a[i]<<' ';
			else
				for(i=1;i<=2*top-1;i++)
					cout<<a[i]<<' ';
			cout<<endl<<endl;
		}
		else
		{
			top/=2;
			if(top>=m)
				for(i=top-m+1;i<=top+m;i++)
					cout<<a[i]<<' ';
			else
				for(i=1;i<=top*2;i++)
					cout<<a[i]<<' ';
			cout<<endl<<endl;

		}
	}
}

int main(){
	read();
	return 0;
}

posted on 2011-04-19 19:52  宇宙吾心  阅读(314)  评论(0)    收藏  举报

导航