একটি সংখ্যা 'n' দিলে আমাদের পরীক্ষা করতে হবে যে প্রদত্ত নম্বরটি স্ট্রং নম্বর কিনা।
স্ট্রং সংখ্যা হল এমন একটি সংখ্যা যার সমস্ত অঙ্কের ফ্যাক্টোরিয়ালের যোগফল 'n' সংখ্যার সমান। ফ্যাক্টরিয়াল বোঝায় যখন আমরা সেই সংখ্যা সহ সেই সংখ্যার নীচে সমস্ত সংখ্যার গুণফল খুঁজে পাই এবং এটি দ্বারা চিহ্নিত করা হয়! (বিস্ময়বোধক চিহ্ন), উদাহরণস্বরূপ:4! =4x3x2x1 =24.
সুতরাং, একটি সংখ্যা খুঁজে বের করতে তার শক্তিশালী সংখ্যা কিনা, আমাদেরকে সংখ্যাটির প্রতিটি অঙ্ক বাছাই করতে হবে যেমন সংখ্যাটি 145 তারপর আমাদের 1, 4 এবং 5 বাছাই করতে হবে এখন আমরা প্রতিটি সংখ্যার ফ্যাক্টরিয়াল বের করব অর্থাৎ 1! =1, 4! =24, 5! =120।
এখন আমরা 1 + 24 + 120 যোগ করব তাই আমরা 145 পাব, এটি প্রদত্ত ইনপুটের মতোই, তাই আমরা বলতে পারি যে সংখ্যাটি শক্তিশালী সংখ্যা।
উদাহরণ
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
সমস্যা সমাধানের জন্য নিচের পদ্ধতি ব্যবহার করা হয়েছে −
আমরা করব -
- একক স্থান থেকে শুরু করে প্রতিটি অঙ্ক নিন এবং এর ফ্যাক্টরিয়াল খুঁজুন।
- আমরা প্রতিটি সংখ্যার ফ্যাক্টরিয়াল যোগ করব।
- মূল সংখ্যার সাথে ফলাফলের তুলনা করুন, যদি তারা সমান হয়, তাহলে সংখ্যাটি শক্তিশালী সংখ্যা; অন্যথায় সংখ্যাটি শক্তিশালী সংখ্যা নয়।
অ্যালগরিদম
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
উদাহরণ
#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\n"); else printf("no it is not a strong number\n"); return 0; }
উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেYes it is a strong number