#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; }