এখানে আমরা ওসাইরিস নম্বর দেখব। একটি ওসাইরিস নম্বর হলো এমন নম্বর যা তার নিজস্ব অঙ্কের সাব-স্যাম্পলের পারমুটেশনগুলোর যোগফলের সমান। ধরুন নম্বরটি ১৩২। তাহলে যদি আমরা {১২ + ২১ + ১৩ + ৩১ + ২৩ + ৩২} ক্যালকুলেট করি, তবে সেটিও ১৩২ হয়। তাই এটি ওসাইরিস নম্বর। আমাদের যাচাই করতে হবে দেওয়া নম্বরটি ওসাইরিস নম্বর কিনা।
পদ্ধতি সহজ। নম্বরগুলো বিশ্লেষণ করলে দেখা যায় প্রতিটি অঙ্ক দুবার আসছে, একবার একক স্থানে এবং একবার দশকের স্থানে। তাই আমরা ১১ দিয়ে গুণ করে চেক করতে পারি।
অ্যালগরিদম
isOsirisNumber(n) −
শুরু a := শেষ অঙ্ক b := দ্বিতীয় অঙ্ক c := প্রথম অঙ্ক digit_sum := a + b + c if n = (22 * digit_sum), then return true end if return false শেষ
উদাহরণ
#include using namespace std; bool isOsirisNumber(int n) { int a = n % 10; int b = (n / 10) % 10; int c = n / 100; int sum = a + b + c; if (n == (22 * sum)) { return true; } return false; } int main() { int n = 132; if (isOsirisNumber(n)) cout << "This is Osiris number"; else cout << "This is Not Osiris number"; }
আউটপুট
This is Osiris number