स्ट्रांग नंबर क्या है?
एक स्ट्रांग नंबर वह है जो अपने अंकों के फैक्टोरियल के योग के बराबर होता है।
उदाहरण
145
Factorial of 1 = 1
Factorial of 4 = 24
Factorial of 5 = 120
Sum = 1 + 24 + 120 = 145
निम्नलिखित प्रोग्राम यह पता लगाने के लिए है कि इनपुट नंबर स्ट्रांग नंबर है या नहीं। यदि नंबर स्ट्रांग नंबर है तो 'True' वापस करें, अन्यथा 'False' वापस करें।
हम दो फंक्शन्स isStrong() का उपयोग कर रहे हैं जो निर्धारित करता है कि नंबर स्ट्रांग है या नहीं, दूसरा मेथड factorial() है जो पास किए गए अंक का फैक्टोरियल वापस करता है।
factorial() को isStrong() के अंदर से कॉल किया जाता है ताकि सभी अंकों (n%10) के फैक्टोरियल प्राप्त करके उन्हें सम में जोड़ा जा सके।
सभी अंकों के फैक्टोरियल जोड़ने के बाद, सम की तुलना मूल नंबर से की जाती है, यदि वे समान हैं तो True वापस किया जाता है, अन्यथा False वापस किया जाता है।
हम isStrong() में n को num में क्यों कॉपी कर रहे हैं? व्हाइल लूप के माध्यम से इटरेट करने पर, n का मान शून्य हो जाएगा। लेकिन हमें बाद में सम के साथ तुलना करने के लिए मूल मान की आवश्यकता होती है और इसलिए, n के मान को किसी वेरिएबल में कॉपी करने की आवश्यकता होती है इससे पहले कि यह बदल जाए।
factorial() अंकों का फैक्टोरियल कैलकुलेट करने के लिए रिकर्सन का उपयोग करता है।
उदाहरण
def factorial(d):
if d == 1 or d == 0:
return 1
return d * factorial(d - 1)
def isStrong(n):
num = n
sm = 0
while n > 0:
digit = n % 10
sm = sm + factorial(digit)
n = n // 10
if sm == num:
return True
else:
return False
print("Input a number")
a = int(input())
print(isStrong(a))
आउटपुट
Input a number
145
True