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;
}
浙公网安备 33010602011771号