Étant donné un nombre 'n', nous devons vérifier si le nombre donné est un nombre fort.
Un nombre fort est celui où la somme des factorielles de tous ses nombres est égale au nombre 'n'. Factorielle est le résultat de la multiplication de tous les nombres inférieurs à ce nombre, y compris ce nombre, et est représenté par ! (point d'exclamation). Par exemple : 4 ! = 4x3x2x1 = 24.
Donc, pour déterminer si un nombre est fort, nous devons extraire chaque bit du nombre, par exemple si le nombre est 145 alors nous devons extraire 1, 4 et 5 puis nous calculerons la factorielle de chaque nombre qui est 1 ! = 1, 4 ! = 24,5 ! =120.
Maintenant, nous ajoutons 1 + 24 + 120 et nous obtenons 145, ce qui est exactement le même que l'entrée donnée, nous pouvons donc dire que ce nombre est fort.
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
La méthode utilisée ci-dessous est la suivante pour résoudre le problème −
Nous allons −
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
Démonstration en direct
#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; }
Si vous exécutez le code ci-dessus, la sortie suivante sera générée −
Yes it is a strong number
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!