fork download
  1. #include<stdio.h>
  2. #include<math.h>
  3.  
  4. int main()
  5. {
  6. long int t,isprime[100000],i,j,primes[100000],p,sieve[32000];
  7. for(i=0;i<32000;i++){
  8. sieve[i]=0;
  9. }
  10. j=0;
  11. for(i=2;i<=(long int)sqrt(1000000000);i++){
  12. if(sieve[i]==0){
  13. primes[j]=i;
  14. //printf("%ld\n",primes[j]);
  15. j++;
  16. p=2;
  17. while(i*p<=(long int)sqrt(1000000000)){
  18. sieve[i*p]=1;
  19. p++;
  20. }
  21. }
  22. }
  23. primes[j]=9999999999;
  24. //for(i=0;i<=j;i++)
  25. //printf("%ld\n",primes[i]);
  26. long int n,m;
  27. scanf("%ld ",&t);
  28. while(t--)
  29. {
  30. scanf("%ld %ld", &m, &n);
  31. for(i=0;i<n-m+1;i++){
  32. isprime[i]=1;
  33. }
  34. j=0;
  35. if(m==1)
  36. m++;
  37. while(primes[j]<=(long int)sqrt(n)){
  38. //printf("%d\n",primes[j]);
  39. i=m/primes[j];
  40. if(i==0||i==1)
  41. i=2*primes[j];
  42. else
  43. i=i*primes[j];
  44. if(i<m)
  45. i+=primes[j];
  46. while(i<=n){
  47. //printf("%d %d\n",i,primes[j]);
  48. isprime[i-m]=0;
  49. i+=primes[j];
  50. }
  51. j++;
  52. }
  53. for(i=0;i<n-m+1;i++){
  54. if(isprime[i]==1){
  55. printf("%ld\n",i+m);
  56. }
  57. }
  58. printf("\n");
  59. }
  60. return 0;
  61. }
  62.  
  63.  
Success #stdin #stdout 0s 3076KB
stdin
Standard input is empty
stdout
Standard output is empty