Hi! I am interested in evaluating this expression:
where $$$\text{popcount}(i)$$$ is the number of 1 digits in the binary expansion of $$$i$$$.
Or, in C++:
int mod = 1e9 + 7;
for (int i = 1; i <= n; ++i){
// avoid calculating popcount more than once
g = popcount(i);
sum += a * a * g * g;
sum %= mod;
}
cout << sum;
The problem is that $$$N$$$ is very large ($$$10^{16}$$$). I am completely stuck, so thanks for your help!