296
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 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
şib
au cel mult9
cifre.
Exemplu
Date de intrare
3 2 69 20 10 19 25
Date de ieşire
64 16 0
#include <bits/stdc++.h> using namespace std; int main() { int n,a[10001],b[10001],p; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]>>b[i]; for(int i=1;i<=n;i++) { p=1; while(p*2<=max(b[i], a[i])) { p=p*2; } if (p >= min(a[i], b[i])) cout<<p<<'\n'; else cout << 0 << '\n'; } return 0; }
Comentarii