fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int NMAX = (int)1e9;
  5. int main() {
  6. bitset<NMAX / 2> bits;
  7. bits.set();
  8. auto sum = 2LL;
  9. int cnt = 1;
  10. for (int i = 3; i / 2 < bits.size(); i = 2 * bits._Find_next(i / 2) + 1) {
  11. sum += i;
  12. ++cnt;
  13. for (auto j = (int64_t) i * i / 2; j < bits.size(); j += i)
  14. bits[j] = 0;
  15. }
  16. for(int i = 0 ; i <= 10 ;i++) cout << bits[i] << " " <<i << endl;
  17. cout << "sum = " << sum << endl;
  18. cout << "cnt = " << cnt << endl;
  19. return 0;
  20. }
Success #stdin #stdout 3.78s 64636KB
stdin
Standard input is empty
stdout
1 0
1 1
1 2
1 3
0 4
1 5
1 6
0 7
1 8
1 9
0 10
sum = 24739512092254535
cnt = 50847534