# PBinfo #254 – Puteri – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerinţa
Se dau n perechi de numere naturale a, b. Să se determine pentru fiecare pereche, dacă există, cea mai mare putere a lui 2 din intervalul închis determinat de a şi b.

Date de intrare
Programul citeşte de la tastatură numărul n, apoi n perechi de numere a, b.

Date de ieşire
Programul va afişa pe câte o linie ecranului, pentru fiecare interval dat, cea mai mare putere a lui 2 din interval, sau 0, dacă intervalul nu conţine nici o putere al lui 2.

Restricţii şi precizări

1 ≤ n ≤ 10000
fiecare dintre numerele a şi b au cel mult 9 cifre.
intervalele sunt închise

Exemplu:
Date de intrare

3
2 69
20 10
19 25 
Date de ieşire

64
16
0

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main() {
    int n, a, b, p;
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        cin >> a >> b;
        if (a > b) {
            int temp = a; 
            a = b, b = temp;        
        } p = 1;
        while (2 * p <= b) p = p * 2;
        if (p >= a)
            cout << p << "\n";
        else 
            cout << "0\n";
    } return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/254)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/254/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-254/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
