poj 1595 Prime Cuts

#include <iostream>
#include
<math.h>
using namespace std;

bool isprime(int n)
{
for (int i=2;i<=sqrt((double)n);i++)
{
if(n%i==0)
return false;
}
return true;
}
int list[500];
int main()
{
int N,C,i,j,top=0;
list[
0]=0;
while(cin>>N>>C)
{
if(list[top]<N)
{
int t=list[top];
for(i=t+1;;i++)
{
if(isprime(i))
list[
++top]=i;
if(list[top]>=N)
break;
}
}
for(i=1;i<=top;i++)
if(list[i]>=N)
break;
if(list[i]>N)i--;

cout
<<N<<" "<<C<<": ";
if(i%2)
{
for(j=(i+1)/2-C+1;j<=(i+1)/2+C-1;j++)
if(j>=1&&j<=i)
cout
<<list[j]<<" ";
}
else
{
for(j=i/2-C+1;j<=i/2+C;j++)
if(j>=1&&j<=i)
cout
<<list[j]<<" ";
}
cout
<<endl<<endl;
}
return 0;
}

  

posted on 2011-07-18 11:26  sysu_mjc  阅读(118)  评论(0编辑  收藏  举报

导航