एक संख्या 'एन' के साथ दिया गया है और कार्य यह निर्धारित करना है कि दिया गया सकारात्मक पूर्णांक एक प्रोथ है या नहीं और परिणाम को आउटपुट के रूप में प्रदर्शित करता है।
प्रोथ नंबर क्या है?
एक प्रोथ नंबर
. द्वारा दिया जाता है$$N=k\cdot\:2^{n}+1$$
जहाँ, n एक धनात्मक पूर्णांक है और k एक विषम धनात्मक पूर्णांक है
पहले कुछ प्रोथ नंबर नीचे दिए गए हैं -
3, 5, 9, 13, 17, 25, 33, 41, 49, 57, 65, 81, 97.......
इनपुट
number: 17
आउटपुट
its a proth number
इनपुट
number: 18
आउटपुट
its not a proth number
दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण इस प्रकार है
-
स्थिति की जांच के लिए नंबर दर्ज करें
-
दिए गए फॉर्मूले को यह जांचने के लिए लागू करें कि यह प्रोथ नंबर है या नहीं
-
यदि शर्त सही है तो इसका एक प्रोथ नंबर प्रिंट करें
-
यदि शर्त सही नहीं है तो प्रिंट करें यह प्रोथ नंबर नहीं है
एल्गोरिदम
Step 1→ declare function to calculate power of 2 bool isPower(int num) return (num && !(num & (num - 1))) Step 2→ Declare function to check if a number is a proth number or not bool isProth(int num) declare int k = 1 While (k < (num / k)) IF (num % k == 0) IF (isPower(num / k)) return true End Set k = k + 2 End End return false Step 3→ In main() Declare int num = 17 IF (isProth(num - 1)) Print "its a proth number" End Else Print "its not a proth number" End
उदाहरण
#include <bits/stdc++.h> using namespace std; //function to calculate power of 2 bool isPower(int num){ return (num && !(num & (num - 1))); } //function to check if a number is a proth number bool isProth(int num){ int k = 1; while (k < (num / k)){ if (num % k == 0){ if (isPower(num / k)) return true; } k = k + 2; } return false; } int main(){ int num = 17; if (isProth(num - 1)) cout << "its a proth number"; else cout << "its not a proth number"; return 0; }
आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -
its a proth number