n अंकों की संख्या के साथ एक संख्या x को देखते हुए, हमारा कार्य यह जांचना है कि दी गई संख्या का प्लस परफेक्ट नंबर है या नहीं। यह जांचने के लिए कि संख्या प्लस परफेक्ट नंबर है, हम प्रत्येक अंक d (d ^ n) की n वीं शक्ति पाते हैं और फिर सभी अंकों का योग करते हैं, यदि योग n के बराबर है तो संख्या प्लस परफेक्ट नंबर है। प्लस परफेक्ट नंबर किसी भी संख्या के आर्मस्ट्रांग को खोजने जैसा ही है।
जैसे नीचे दिए गए उदाहरण में -
उदाहरण
Input: 163 Output: Number is not a perfect_number Explanation: 1^3 + 6^3 + 3^3 is not equal to 163 Input: 371 Output: Number is a perfect_number Explanation: 3^3 + 7^3 +1^3 is equal to 371
नीचे इस्तेमाल किया गया तरीका इस प्रकार है -
- पहला कदम दिए गए इनपुट में अंकों की संख्या गिनना है।
- दूसरा चरण एक अंक को उतनी ही बार शक्ति देना है जितनी बार इनपुट के अंकों की संख्या।
- तीसरा चरण सभी संख्याओं को जोड़ रहा है और जांचें कि यह बराबर है या नहीं।
एल्गोरिदम
Start In function int power(int a, int b) Step 1-> Declare and initialize power as 1 Step 2-> Loop While b>0 Set power = power * a Decrement b by 1 Step 3-> return power End function power In function int count(int n) Step 1-> Declare and Initialize i as 0 Step 2-> Loop While n!=0 Increment i by 1 Set n = n/10 End Loop Step 3-> Return i In function int perfect_number(int n) Step 1-> Declare and initialize x as count(n) Step 2-> Declare and initialize rem as 0 and m as 0 Step 3-> Loop While(n) Set rem as n %10 Set m as m + power(rem, x) Set n as n/ 10 End Loop Step 4-> Return m End Function perfect_number In Function int main(int argc, char const *argv[]) Step 1-> Initialize n as 1634 Step 2-> If n == perfect_number(n) then, Print "Number is a perfect_number " Step 3-> else Print "Number is not a perfect_number " End if End main Stop
उदाहरण
#include <stdio.h> int power(int a, int b) { int power =1; while(b>0) { power *= a; b--; } return power; } int count(int n) { int i=0; while(n!=0) { i++; n = n/10; } return i; } int perfect_number(int n) { int x = count(n); int rem = 0, m=0; while(n) { rem = n %10; m += power(rem, x); n /= 10; } return m; } int main(int argc, char const *argv[]) { int n = 1634; if(n == perfect_number(n)) { printf("Number is a perfect_number\n"); } else printf("Number is not a perfect_number\n"); return 0; }
आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -
Number is a perfect_number