fork(1) download
  1. #include <stdio.h>
  2. #define T 3400
  3. #define Z 31622
  4. #define M 100001
  5. #define Get(t) ((tab[(t)>>5]>>((t)&31))&1)
  6. #define One(t) ((tab[(t)>>5]|=1<<((t)&31)))"%d", &t);
  7. for(i = 0; i < t; i++)
  8. {
  9. scanf("%d %d", &m,&n);
  10. if(m==1)m=2;
  11. if(m<Z)
  12. {
  13. if(n>Z)
  14. {
  15. a=m;
  16. m=Z;
  17. A=0;
  18. B=T-1;
  19. while(a>primes[A] && a<primes[B] && B-A>1)
  20. if(a>primes[(A+B)/2])A=(A+B)/2;
  21. else B=(A+B)/2;
  22.  
  23. if(a<=primes[A])S=A;
  24. else S=B;
  25.  
  26. for(j=S;j<T;j++)
  27. printf("%d\n", primes[j]);
  28. }
  29. else
  30. {
  31. a=m;
  32. b=n;
  33. A=0;
  34. B=T-1;
  35.  
  36. while(a>primes[A] && a<primes[B] && B-A>1)
  37. if(a>primes[(A+B)/2])A=(A+B)/2;
  38. else B=(A+B)/2;
  39.  
  40. if(a<=primes[A])S=A;
  41. else S=B;
  42.  
  43. A=S;
  44. B=T-1;
  45.  
  46. while(b>primes[A] && b<primes[B] && B-A>1)
  47. if(b>primes[(A+B)/2])A=(A+B)/2;
  48. else B=(A+B)/2;
  49.  
  50. if(b>=primes[B])SS=B;
  51. else SS=A;
  52.  
  53. for(j=S;j<=SS;j++)
  54. printf("%d\n", primes[j]);
  55. }
  56. }
  57.  
  58. if(n>Z)
  59. {
  60. K = (n-m+1)/32+1;
  61. for( j = 0;j<K;j++)
  62. tab[j]=0;
  63.  
  64. if(m%2==0)m+=1;
  65. for( j = m; j<=n; j+=2)
  66. {
  67. if(!Get(j-m))
  68. {
  69. k=0;
  70. while(j%primes[k]!=0 && k < T)k++;
  71. if(k==T)printf("%d\n", j);
  72. else
  73. {
  74. h=j-m;
  75. while(h<K)
  76. {
  77. One(t);
  78. h+=primes[k];
  79. }
  80. }
  81. }
  82.  
  83. j+=4;
  84.  
  85. if(!Get(j-m))
  86. {
  87. k=0;
  88. while(j%primes[k]!=0 && k < T)k++;
  89. if(k==T)printf("%d\n", j);
  90. else
  91. {
  92. h=j-m;
  93. while(h<K)
  94. {
  95. One(t);
  96. h+=primes[k];
  97. }
  98. }
  99. }
  100. }
  101. }
  102.  
  103.  
  104. }
  105.  
  106. return 0;
  107. }
Success #stdin #stdout 0.02s 1732KB
stdin
Standard input is empty
stdout
Standard output is empty