比赛 20121109 评测结果 AAAAAAAAAAAAAAA
题目名称 喜欢摇头的数学牛 最终得分 100
用户昵称 song 运行时间 9.151 s
代码语言 C++ 内存使用 62.28 MiB
提交时间 2012-11-09 11:15:58
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,ni[15500001]={0},nk=0,np=0,q=0,ans[1000]={0};
int main()
{
	freopen("tinkle.in","r",stdin);
	freopen("tinkle.out","w",stdout);
	cin>>n>>m;
	ni[0]=1;
	ni[1]=1;
	for(int i=2;nk<m;i++)
	{
		if(ni[i]==0)
		{
			for(int k=2;k*i<15500001;k++)
			{
				if(ni[k*i]==0)
				    ni[k*i]=1;
			}
			if(np==n-1)
			{
				np++;
				q=i;
			}
			else
			{
			    if(np<n)
				    np++;
			    else
				    nk++;
			}
		}
	}
	int ll=0;
	for(int i=q-1;ll<m;i--)
	{
		if(ni[i]==0)
		{
			ans[ll]=i;
			ll++;
		}
	}
	for(int i=ll-1;i>=0;i--)
	{
		cout<<ans[i]<<' ';
	}
	ll=0;
	for(int i=q+1;ll<m;i++)
	{
		if(ni[i]==0)
		{
			cout<<i<<' ';
			ll++;
		}
	}
}