इस समस्या में हमें एक नंबर दिया जाता है और हमारा काम यह जांचना होता है कि नंबर वुडल नंबर है या नहीं।
वुडॉल नंबर एक विशेष प्रकार की संख्या होती है जो इस रूप की होती है,
Wn = n.2n -1
पहले 5 वुडल नंबर हैं 1, 7, 23, 63, 159
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
X = 159
आउटपुट
Yes
इस समस्या को हल करने के लिए, हम संख्या का निरीक्षण करेंगे, यदि संख्या सम है तो वह वुडल नहीं हो सकती है और फिर संख्या की जाँच करें। जाँच करने के लिए, संख्या को 1 से जोड़ें और संख्या को 2 से पुनरावर्ती रूप से विभाजित करें। प्रत्येक भाग के बाद गिनें कि यह कितनी बार विभाज्य है। और प्रत्येक बिंदु पर जाँच करें कि क्या गिनती संख्या के बराबर है।
हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम,
उदाहरण
#include <iostream> using namespace std; bool isWoodallNumber(int x){ if (x % 2 == 0) return false; if (x == 1) return true; x+= 1; int p = 0; while(x%2 == 0){ x = x/2; p++; if (p == x) return true; } return false; } int main() { int x = 1424; cout<<x; (isWoodallNumber(x))?cout<<" is a Woodal Number":cout<<" is not a Woodal Number"; return 0; }
आउटपुट
1424 is not a Woodal Number