स्ट्रॉन्ग नंबर क्या है?
एक संख्या स्ट्रॉन्ग होती है यदि उसके अंकों के फैक्टोरियल का योग संख्या के बराबर हो।
उदाहरण
- 145: 1! + 4! + 5! = 1 + 24 + 120 = 145 ✓ (स्ट्रॉन्ग)
- 123: 1! + 2! + 3! = 1 + 2 + 6 = 9 ≠ 123 ✗ (नहीं)
लॉजिक
while(n > 0) {
rem = n % 10; // अंतिम अंक
fact = 1;
for(i = 1; i <= rem; i++)
fact *= i; // अंक का फैक्टोरियल
sum += fact;
n = n / 10; // अंतिम अंक हटाएं
}
if (sum == original) -> स्ट्रॉन्ग
C प्रोग्राम
#include <stdio.h>
int main() {
int n, i, fact, rem, sum = 0, temp;
printf("Enter a number: ");
scanf("%d", &n);
temp = n;
while(n > 0) {
i = 1; fact = 1;
rem = n % 10;
while(i <= rem) {
fact = fact * i;
i++;
}
sum += fact;
n = n / 10;
}
if(sum == temp)
printf("%d is a strong number\n", temp);
else
printf("%d is not a strong number\n", temp);
return 0;
}
आउटपुट
Run 1: Enter a number: 145 145 is a strong number Run 2: Enter a number: 25 25 is not a strong number
अन्य स्ट्रॉन्ग नंबर्स
ज्ञात स्ट्रॉन्ग नंबर्स: 1, 2, 145, 40585 (बेस 10 में केवल ये चार)।
ऑप्टिमाइजेशन
फैक्टोरियल्स को प्री-कंप्यूट करें (0! से 9! तक) क्योंकि अंक केवल 0-9 हो सकते हैं:
int fact[10] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880};
// फिर लूप में: sum += fact[rem];