আর্মস্ট্রং নম্বর হল এমন একটি সংখ্যা যেখানে সংখ্যার মোট সংখ্যার ঘাতে উত্থাপিত অঙ্কের যোগফল সংখ্যার সমান।
আর্মস্ট্রং সংখ্যার কিছু উদাহরণ নিম্নরূপ -
3 = 3^1 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153 407 = 4^3 + 0^3 + 7^3 = 64 +0 + 343 = 407 1634 = 1^4 + 6^4 + 3^4 + 4^4 = 1 + 1296 + 81 + 256 = 1634
একটি প্রোগ্রাম যা দুটি ব্যবধানের মধ্যে আর্মস্ট্রং সংখ্যা প্রদর্শন করে তা নিম্নরূপ।
উদাহরণ
#include <iostream> #include <cmath> using namespace std; int main() { int lowerbound, upperbound, digitSum, temp, remainderNum, digitNum ; lowerbound = 100; upperbound = 500; cout<<"Armstrong Numbers between "<<lowerbound<<" and "<<upperbound<<" are: "; for(int num = lowerbound; num <= upperbound; num++) { temp = num; digitNum = 0; while (temp != 0) { digitNum++; temp = temp/10; } temp = num; digitSum = 0; while (temp != 0) { remainderNum = temp%10; digitSum = digitSum + pow(remainderNum, digitNum); temp = temp/10; } if (num == digitSum) cout<<num<<" "; } return 0; }
আউটপুট
Armstrong Numbers between 100 and 500 are: 153 370 371 407
উপরের প্রোগ্রামে, প্রদত্ত ব্যবধানের মধ্যে আর্মস্ট্রং সংখ্যা পাওয়া যায়। এটি একাধিক ধাপ ব্যবহার করে করা হয়। ব্যবধানের লোয়ারবাউন্ড এবং আপারবাউন্ড দেওয়া হয়। এগুলি ব্যবহার করে, একটি ফর লুপ নিম্নবাউন্ড থেকে আপারবাউন্ডে শুরু করা হয় এবং প্রতিটি সংখ্যা এটি একটি আর্মস্ট্রং নম্বর কিনা তা দেখার জন্য মূল্যায়ন করা হয়।
এটি নিম্নলিখিত কোড স্নিপেটে দেখা যেতে পারে।
lowerbound = 100; upperbound = 500; cout<<"Armstrong Numbers between "<<lowerbound<<" and "<<upperbound<<" are: "; for(int num = lowerbound; num <= upperbound; num++)
ফর লুপে, প্রথমে সংখ্যার সংখ্যা অর্থাৎ সংখ্যার সংখ্যা পাওয়া যায়। এটি প্রতিটি অঙ্কের জন্য digitNum-এ একটি যোগ করে করা হয়।
এটি নিম্নলিখিত কোড স্নিপেট দ্বারা প্রদর্শিত হয়৷
৷temp = num; digitNum = 0; while (temp != 0) { digitNum++; temp = temp/10; }
সংখ্যার সংখ্যা জানার পরে, ডিজিটসংখ্যার প্রতিটি সংখ্যাকে ডিজিটনামের শক্তিতে যোগ করে অঙ্কের সংখ্যা গণনা করা হয়।
এটি নিম্নলিখিত কোড স্নিপেটে দেখা যেতে পারে।
temp = num; digitSum = 0; while (temp != 0) { remainderNum = temp%10; digitSum = digitSum + pow(remainderNum, digitNum); temp = temp/10; }
যদি সংখ্যাটি সংখ্যার সমান হয়, তাহলে সেই সংখ্যাটি একটি আর্মস্ট্রং সংখ্যা এবং এটি প্রিন্ট করা হয়। যদি না হয়, তাহলে এটি আর্মস্ট্রং নম্বর নয়। এটি নীচের কোড স্নিপেটে দেখা যায়৷
৷if (num == digitSum) cout<<num<<" ";