👤

Fisierul text bac.txt contine pe prima linie cel mult 1 000 000 de numere naturale cu cel mult 9 cifre fiecare. Sa se scrie un program care citeste valorile din fisier si afiseaza pe ecran pe aceeasi linie cu spatiu intre ele valorile din fisier care sunt puteri ale lui 2.

Răspuns :

#include <iostream>

#include <fstream>

using namespace std;

bool verif(int n) {

while (n % 2 == 0) n /= 2;

return n == 1;

}

int main() {

int curent;

ifstream fin("bac.txt");

while (fin) {

 fin >> curent;

 if (verif(curent)) cout << curent << " ";

}

}

► Explicatie

Un numar este putere a lui doi daca impartind repetat numarul la 2 obtinem in final valaorea 1.