fork download
  1. #include <bits/stdc++.h>
  2. typedef long long int ll;
  3.  
  4. using namespace std;
  5. ll arr[20000011];
  6. bool prime[20000011];
  7. int main()
  8. {
  9. ll a,b,c,d,e,f,g,h;
  10. cin>>a;arr[0]=0;
  11. for(b=1;b<=20000011;b++)
  12. {arr[b] = __builtin_popcount(b) + arr[b-1];}
  13.  
  14. memset(prime,false,sizeof(prime));
  15. //prime[1] = true;
  16. for(b=2;b<=sqrt(20000011);b++)
  17. {
  18. if(prime[b]==false)
  19. {
  20. for(c=b*2;c<=20000011;c=c+b)
  21. {
  22. prime[c] = true;
  23. }
  24. }
  25. }
  26. for(b=0;b<a;b++)
  27. {
  28. cin>>c>>d;
  29. e = arr[d]-arr[c-1];
  30. if(e==1)cout<<"1\n";
  31. else
  32. {
  33. while(1)
  34. {
  35. if(prime[e]==false)
  36. {
  37. cout<<e*2<<"\n";break;
  38. }
  39. else e++;
  40. }
  41. }
  42. }
  43. }
  44.  
Runtime error #stdin #stdout 0.27s 191040KB
stdin
Standard input is empty
stdout
Standard output is empty