Strong number হলো এমন একটি নম্বর যার সকল ডিজিটের ফ্যাক্টোরিয়ালের যোগফল নম্বর ‘n’-র সমান। ফ্যাক্টোরিয়াল মানে যখন আমরা সেই নম্বরসহ সেই নম্বর থেকে নিচের সকল নম্বরের গুণফল বের করি এবং এটি ! (এক্সক্লামেশন সাইন) দিয়ে ডিনোট করা হয়, উদাহরণস্বরূপ: 5! = 5x4x3x2x1 = 120। যখন একটি নম্বর Strong number কিনা চেক করতে হয়, রিমাইন্ডার/মডুলাস অপারেটর এবং ‘while’ লুপ ব্যবহার করা যায়।
নিচে এর демонস্ট্রেশন দেওয়া হলো:
উদাহরণ
my_sum = 0
my_num = 296
print("The number is")
print(my_num)
temp = my_num
while(my_num):
i = 1
fact = 1
remainder = my_num % 10
while(i <= remainder):
fact = fact * i
i = i + 1
my_sum = my_sum + fact
my_num = my_num // 10
if(my_sum == temp):
print("The number is a strong number")
else:
print("The number is not a strong number")
আউটপুট
The number is 296 The number is not a strong number
ব্যাখ্যা
একটি যোগফল ০ হিসেবে আরম্ভ করা হয়েছে।
নম্বর ডিফাইন করা হয়েছে এবং কনসোলে প্রদর্শিত হয়েছে।
নম্বর একটি টেম্পোরারি ভেরিয়েবলে ডিফাইন করা হয়েছে।
while লুপ ব্যবহার করা হয়েছে যেখানে রিমাইন্ডার নির্ধারণ করা হয়েছে।
আরেকটি while লুপ ব্যবহার করা হয়েছে দেখতে ইটারেটর রিমাইন্ডার থেকে কম নাকি সমান।
যদি কম হয়, ‘fact’ ভেরিয়েবল ইটারেটরের সাথে গুণ করা হয়।
তারপর এটি ১ দিয়ে ইনক্রিমেন্ট করা হয়।
যোগফল ভ্যালু ‘fact’ ভেরিয়েবলের সাথে যোগ করা হয়।
যদি ‘temp’ ভেরিয়েবল এবং যোগফল সমান হয়, এটি একটি স্ট্রং নম্বর ধরা হয়।