Să se afişeze toate numerele naturale cuprinse între a şi b (aSă se afişeze toate numerele naturale cuprinse între a şi b (a<b) care au proprietatea că pătratul şi cubul lor, reprezentate în baza 2, conțin acelaşi număr de cifre binare 0. a şi b se introduc de la tastatură. 13
#include <iostream>
using namespace std;
int main() {
int a = 1, b = 100;
for (int i = a; i <= b; i++) {
int sqr = i * i;
int cube = i * i * i;
int sqr_zeros = 0, cube_zeros = 0;
while (sqr > 0) {
if (sqr % 2 == 0) {
sqr_zeros++;
}
sqr /= 2;
}
while (cube > 0) {
if (cube % 2 == 0) {
cube_zeros++;
}
cube /= 2;
}
if (sqr_zeros == cube_zeros) {
cout << i << endl;
}
}
return 0;
}
Acest program folosește un for loop pentru a itera prin toate numerele între a și b. Pentru fiecare număr, calculează pătratul și cubul său și numără numărul de cifre binare 0 din reprezentarea lor în baza 2, utilizând două while loops și operatorul % pentru a verifica dacă cifra curentă este 0. Dacă numărul de cifre 0 din reprezentarea în baza 2 a pătratului este egal cu numărul de cifre 0 din reprezentarea în baza 2 a cubului, numărul este afișat la consolă utilizând std::cout.
#include <iostream>
using namespace std;
int main() {
int a = 1, b = 100;
for (int i = a; i <= b; i++) {
int sqr = i * i;
int cube = i * i * i;
int sqr_zeros = 0, cube_zeros = 0;
while (sqr > 0) {
if (sqr % 2 == 0) {
sqr_zeros++;
}
sqr /= 2;
}
while (cube > 0) {
if (cube % 2 == 0) {
cube_zeros++;
}
cube /= 2;
}
if (sqr_zeros == cube_zeros) {
cout << i << endl;
}
}
return 0;
}
Acest program folosește un for loop pentru a itera prin toate numerele între a și b. Pentru fiecare număr, calculează pătratul și cubul său și numără numărul de cifre binare 0 din reprezentarea lor în baza 2, utilizând două while loops și operatorul % pentru a verifica dacă cifra curentă este 0. Dacă numărul de cifre 0 din reprezentarea în baza 2 a pătratului este egal cu numărul de cifre 0 din reprezentarea în baza 2 a cubului, numărul este afișat la consolă utilizând std::cout.