#include #include inline void setOn(char *Seive, long int state) { Seive[state>>3] |= 1<<(7&state); } inline bool isOn(char *Seive, long int state) { return (Seive[state>>3] & 1<<(7&state)) == 1<<(7&state); } int main() { int n; char FirstTime; scanf("%d", &n); FirstTime = true; while (n--) { int lo, hi; scanf("%d %d", &lo, &hi); char Seive[hi+2]; memset(Seive, 0, hi+2); int m, M; m = lo?lo; for (int i=2; i<=hi; i++) { if (!isOn(Seive, i)) { for (int j=i<<1; j<=hi; j+=i) { setOn(Seive, j); } } } if (!FirstTime) printf("\n"); else FirstTime=false; for ( ; lo<=hi; lo++) if (!isOn(Seive, lo) ) printf("%d\n", lo); } return 0; }