CCCPaste

Prime from M to N

#include
int main()
{
    int M,N,i,j,k=0,q,lb,hb,mid;
    scanf("%d %d",&M,&N);
    int flag[100000]={0},prime[10000];
    for(i=4;i<=N;i+=2)
        flag[i]=1;
    for(i=3;i*i<=N;i+=2)
    {
        for(j=3*i;j<=N;j+=2*i)
        {
            flag[j]=1;
        }
    }
    prime[k]=2;//Start creating prime array
    for(i=3;i<=N;i++)
    {
        if(flag[i]==0)
        {
            k++;
            prime[k]=i;//Create full prime array up to N
        }
    }
//Start binary searching from here
    lb=0;
    hb=k;
    if(prime[lb]==M)
        q=lb;
    else
    while(lb<=hb)
    {
        mid=(lb+hb)/2;
        if(prime[mid]==M)
            q=mid;
        else if(prime[mid]>M)
            hb=mid-1;
        else if(prime[mid]hb)
        q=lb;
//print the primes from M to N
    for(i=q;i<=k;i++)
    {
        printf("%d\n",prime[i]);
    }
    return 0;
}