[GESP2506二级] 幂和数

using namespace std;
int main(){
    int l,r;
    cin>>l>>r;
    int a[20]={1}; // 预处理:提前求出本题范围内2的幂
    for(int i=1;i<=19;i++) a[i]=a[i-1]*2;
    int cnt=0;
    for(int i=l;i<=r;i++){
        int n=i;
        bool f=false; // 假设不是幂合数
        for(int x=0;a[x]<=n;x++){
            if(f) break; // 避免重复计算
            for(int y=0;a[y]<=n;y++){
                if(a[x]+a[y]==n){
                    cnt++;
                    f=true;
                    break;
                }
            }
        }
    }
    cout<<cnt;
    return 0;
}