एक संख्या 'n' दी गई है, हमें जांचना है कि यह स्ट्रांग नंबर है या नहीं।
स्ट्रांग नंबर वह संख्या है जिसके सभी अंकों के फैक्टोरियल का योग उस संख्या 'n' के बराबर हो। फैक्टोरियल का अर्थ है उस संख्या तक की सभी संख्याओं का गुणनफल, जिसे ! (विस्मयादिबोधक चिह्न) से दर्शाया जाता है। उदाहरण: 4! = 4×3×2×1 = 24।
किसी संख्या के स्ट्रांग नंबर होने का पता लगाने के लिए, हम उसके प्रत्येक अंक को लेते हैं (जैसे 145 के अंक 1, 4, 5), प्रत्येक का फैक्टोरियल निकालते हैं (1! = 1, 4! = 24, 5! = 120), फिर उनका योग करते हैं (1 + 24 + 120 = 145)। यदि योग मूल संख्या के बराबर है, तो वह स्ट्रांग नंबर है।
उदाहरण
इनपुट: n = 124 आउटपुट: No, यह स्ट्रांग नंबर नहीं है। व्याख्या: 1! + 2! + 4! = 27 ≠ 124 इनपुट: n = 145 आउटपुट: Yes, यह स्ट्रांग नंबर है। व्याख्या: 1! + 4! + 5! = 145
दृष्टिकोण
- इकाई स्थान से शुरू करके प्रत्येक अंक लें और उसका फैक्टोरियल निकालें।
- सभी फैक्टोरियल का योग करें।
- परिणाम की तुलना मूल संख्या से करें; यदि बराबर हैं तो स्ट्रांग नंबर, अन्यथा नहीं।
एल्गोरिदम
START
फंक्शन int factorial(int r)
स्टेप 1→ fact = 1 आरंभ करें
स्टेप 2→ जब r > 1 तब तक लूप: fact = fact * r; r घटाएं
स्टेप 3→ fact लौटाएं
फंक्शन int check(int n)
स्टेप 1→ temp = n, result = 0 आरंभ करें
स्टेप 2→ जब temp ≠ 0 तब तक लूप:
rem = temp % 10
result = result + factorial(rem)
temp = temp / 10
स्टेप 3→ यदि result == n तो 1 लौटाएं अन्यथा 0 लौटाएं
मुख्य फंक्शन
n = 145 सेट करें
यदि check(n) तो "Yes it is a strong number" प्रिंट करें अन्यथा "no it is not a strong number"
STOP
C कोड उदाहरण
#include <stdio.h>
int factorial(int r) {
int fact = 1;
while(r > 1) {
fact = fact * r;
r--;
}
return fact;
}
int check(int n) {
int temp, rem, result = 0;
temp = n;
while(temp) {
rem = temp % 10;
result = result + factorial(rem);
temp = temp / 10;
}
if(result == n) return 1;
else return 0;
}
int main() {
int n = 145;
if(check(n))
printf("Yes it is a strong number\n");
else
printf("no it is not a strong number\n");
return 0;
}
आउटपुट
Yes it is a strong number