Diberi nombor 'n', kita perlu menyemak sama ada nombor yang diberikan adalah nombor kuat.
Nombor kuat ialah nombor yang jumlah faktorial semua nombornya adalah sama dengan nombor 'n'. Faktorial ialah hasil darab semua nombor yang kurang daripada nombor itu, termasuk nombor itu, dan diwakili oleh ! (tanda seru). Contohnya: 4! = 4x3x2x1 = 24.
Jadi untuk menentukan sama ada nombor itu kuat kita perlu mengekstrak setiap bit nombor tersebut, contohnya jika nombor itu 145 maka kita perlu mengeluarkan 1, 4 dan 5 dan kemudian kita akan mengira pemfaktoran setiap nombor iaitu 1 ! = 1, 4! = 24,5! =120.
Sekarang kita tambah 1 + 24 + 120 dan kita dapat 145, yang betul-betul sama dengan input yang diberikan, jadi kita boleh katakan bahawa nombor ini adalah kuat.
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
Kaedah yang digunakan di bawah adalah seperti berikut untuk menyelesaikan masalah −
Kami akan −
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
Demonstrasi Langsung
#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; }
Jika anda menjalankan kod di atas, output berikut akan dihasilkan −
Yes it is a strong number
Atas ialah kandungan terperinci Program C untuk menyemak nombor kuat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!