Skip to content

Instantly share code, notes, and snippets.

@gurpreetsingh00885
Created June 10, 2020 05:32
Show Gist options
  • Save gurpreetsingh00885/71615edac3039dcac9770f4b3cee90ab to your computer and use it in GitHub Desktop.
Save gurpreetsingh00885/71615edac3039dcac9770f4b3cee90ab to your computer and use it in GitHub Desktop.
#include <iostream>
using namespace std;
int is_prime[65];
long long countSpecialBits(long long L, long long R) {
long long count = 0;
for (long long i = L; i <= R; i++) {
for (int j = 0; j < 64; j++) {
if ((i & (1 << j)) && is_prime[j]) {
count++;
}
}
}
return count;
}
int main() {
for(int i = 0; i < 65; i++)
is_prime[i] = false;
is_prime[2] = true;
is_prime[3] = true;
is_prime[5] = true;
is_prime[7] = true;
is_prime[11] = true;
is_prime[13] = true;
is_prime[17] = true;
is_prime[19] = true;
is_prime[23] = true;
is_prime[29] = true;
is_prime[31] = true;
is_prime[37] = true;
is_prime[41] = true;
is_prime[43] = true;
is_prime[47] = true;
is_prime[53] = true;
is_prime[59] = true;
is_prime[61] = true;
is_prime[67] = true;
is_prime[71] = true;
is_prime[73] = true;
is_prime[79] = true;
is_prime[83] = true;
is_prime[89] = true;
is_prime[97] = true;
int T;
long long L, R;
cin >> T;
for (int i = 0; i < T; i++) {
cin >> L >> R;
cout << countSpecialBits(L, R) << '\n';
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment