Bei einer gegebenen Zahl „n“ müssen wir prüfen, ob die gegebene Zahl eine starke Zahl ist.
Eine starke Zahl ist eine Zahl, bei der die Summe der Fakultäten aller ihrer Zahlen gleich der Zahl „n“ ist. Die Fakultät ist das Ergebnis der Multiplikation aller Zahlen, die kleiner als diese Zahl sind, einschließlich dieser Zahl, und wird durch ! (Ausrufezeichen) dargestellt. Zum Beispiel: 4! = 4x3x2x1 = 24.
Um also festzustellen, ob eine Zahl stark ist, müssen wir jedes Bit der Zahl extrahieren. Wenn die Zahl beispielsweise 145 ist, müssen wir 1, 4 und 5 extrahieren und dann berechnen wir die Fakultät jeder Zahl, die 1 ist ! = 1, 4! = 24,5! =120.
Jetzt addieren wir 1 + 24 + 120 und erhalten 145, was genau der angegebenen Eingabe entspricht, sodass wir sagen können, dass diese Zahl stark ist.
Input: n = 124 Output: No it is not a strong number Explanation: 1! + 2! + 4! = 27 which is not equal to n i.e, 124 Input: n = 145 Output: Yes it is a strong number Explanation: 1! + 4! + 5! = 145
Die unten verwendete Methode lautet wie folgt, um das Problem zu lösen −
Wir werden −
START In Function int factorial(int r) Step1 -> Initialize int fact and set as 1 Step2-> Loop while r>1 Set fact as fact * r Decremnet r by 1 End Loop Step 3-> Return fact End Function factorial In Function int check(int n) Step 1-> Initialize int temp, rem and result, set result as 0 Step 2-> Set temp as n Step 3-> Loop while temp Set rem as temp % 10 Set result as result + factorial(rem) Set temp as temp/10 End loop Step 4-> If result == n then, Return 1 Step 5-> Else Return 0 End function check In main(int argc, char const *argv[]) Step 1-> Initialise and set n as 145 Step 2->If check(n) is valid then, Print "Yes it is a strong number” Step 3-> Else Print "no it is not a strong number” STOP
Live-Demonstration
#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 argc, char const *argv[]) { int n = 145; if (check(n)) printf("Yes it is a strong number</p><p>"); else printf("no it is not a strong number</p><p>"); return 0; }
Wenn Sie den obigen Code ausführen, wird die folgende Ausgabe generiert: -
Yes it is a strong number
Das obige ist der detaillierte Inhalt vonC-Programm zur Überprüfung starker Zahlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!