यहां हम देखेंगे कि क्या हम किसी संख्या को 2 की दो गैर-शून्य घातों के योग के रूप में दर्शा सकते हैं। तो हम जांचेंगे कि दी गई संख्या N को (2ˣ + 2ʸ) के रूप में दर्शाया जा सकता है जहां x, y > 0। मान लीजिए संख्या 10 है, इसे 2³ + 2¹ के रूप में दर्शाया जा सकता है।
दृष्टिकोण सरल है। दो मामले हैं। यदि संख्या n सम है, तो इसे 2ˣ के रूप में दर्शाया जा सकता है। जहां x > 0। दूसरा मामला यह है कि यदि N विषम है, तो इसे कभी भी 2 की घातों के योग के रूप में दर्शाया नहीं जा सकता। हम घात के रूप में 0 का उपयोग नहीं कर सकते, इसलिए हमें विषम संख्याएं नहीं मिल सकतीं। सभी विषम संख्याओं के लिए इसके बाइनरी प्रतिनिधित्व का LSB 1 होता है।
उदाहरण
#include <iostream>
using namespace std;
bool isSumofTwosPower(int n) {
if((n & 1) == 0) {
return true;
} else {
return false;
}
}
int main() {
int num = 86;
if(isSumofTwosPower(num)) {
cout << "Can be represented";
} else {
cout << "Cannot be represented";
}
}
आउटपुट
Can be represented