Here is my Code. I have been tired seeing WA. Can anyone find the BUG ? Thanx In advance.
#include<stdio.h>
#include<math.h>
int a,j,m,k=0,i,n,c1,c2,flag2,prime[1000],flag[1000],count,left,right;
int main()
{
while(scanf("%d %d",&n,&c1)==2)
{
printf("%d %d: ",n,c1);
if((n < 1 || n > 1000) || (c1 < 1 || c1 > n))
{
printf("\n\n");
continue;
}
for(i=0;i<=n+1;i++)
flag
=1;flag2 = 0;
m=sqrt(n);
prime[1] = 1;
for(i=2;i<=m;i++)
{
if (flag==1)
{
for(j=i+i;j<=n;j+=i)
flag[j]=0;
}
}
for(i=2,k=2,count=0;i<=n+1; i++)
{
if (flag==1)
{
prime[k++]=i;
count++;
}
}
if(count%2==0)
{
c2 = c1*2;
if (c2>=count)
{
for (i=1;i<=count;i++)
{
printf("%d ",prime);
}
flag2 = 1;
}
if(flag2!=1)
{
left = count/2 - c1 + 1;
right = count/2 + 1 + c1 - 1;
for (i=left;i<=right;i++)
printf("%d ",prime);
}
printf("\n\n");
}
if((flag2==0)&&(count%2!=0))
{
c2 = c1*2 -1 ;
if (c2>=count)
{
for (i=1;i<=count;i++)
{
printf("%d ",prime);
}
flag2 = 1;
}
if(flag2!=1)
{
left = (count+1)/2 - (c2- 1)/2;
right = (count+1)/2 + (c2- 1)/2;
for (i=left;i<=right;i++)
printf("%d ",prime);
}
printf("\n\n");
}
}
return 0;
}
