fork(2) download
  1. #include<iostream>
  2. #include<cmath>
  3. #define diff 100000
  4. #define sq 1000000000
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. int prime[diff];
  10. int myprime[diff];
  11. long long int m,n,i,j,q,s,r,w,p;
  12. int t,range;
  13. cin>>t;
  14. while(t--)
  15. {
  16. r=0;
  17.  
  18. cin>>m>>n;
  19. range=floor(sqrt(((double)n)));
  20. prime[0]=0;
  21. prime[1]=0;
  22. for(i=2;i<=sqrt(sq);i++)
  23. prime[i]=1;
  24.  
  25. for(i=2;i<=sqrt(sq);i++) //i=range
  26. {
  27.  
  28. if(prime[i]==1)
  29. {
  30. for(j=2;i*j<=n;j++)
  31. {
  32.  
  33. prime[i*j]=0;
  34. }
  35.  
  36. }
  37. }
  38.  
  39. for(i=2;i<=sqrt(sq);i++)
  40. {
  41.  
  42. if(prime[i]==1)
  43. {
  44. myprime[r]=i;
  45. r++;
  46. }
  47. }
  48.  
  49. for(i=0;i<r;i++)
  50. {
  51.  
  52. w=m/myprime[i];
  53. w=w*myprime[i];
  54. p=myprime[i];
  55.  
  56. for(s=w;s<=sqrt(sq);s=s+p)
  57. {
  58.  
  59. if(prime[s]==1)
  60. {
  61. for(q=2;s*q<=n;q++) //possible bug
  62. {
  63. prime[s*q]=0;
  64. }
  65. }
  66. }
  67. }
  68.  
  69. for(i=m;i<=n;i++)
  70. {
  71. if(prime[i]==1)
  72. {
  73. cout<<i<<"\n";
  74.  
  75. }
  76. }
  77. cout<<"\n";
  78.  
  79.  
  80. }
  81.  
  82.  
  83.  
  84.  
  85. return 0;
  86.  
  87. }
  88.  
Success #stdin #stdout 0s 4112KB
stdin
Standard input is empty
stdout
Standard output is empty