आर्मस्ट्रांग संख्या वह संख्या होती है, जहां अंकों की कुल संख्या के घात तक उठाए गए अंकों का योग संख्या के बराबर होता है।
आर्मस्ट्रांग नंबरों के कुछ उदाहरण इस प्रकार हैं -
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<<" ";