एक आर्मस्ट्रांग संख्या वह संख्या है जहां अंकों का योग अंकों की कुल संख्या की घात पर उठाकर संख्या के बराबर होता है।
आर्मस्ट्रांग संख्याओं के कुछ उदाहरण निम्नलिखित हैं:
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<<"आर्मस्ट्रांग संख्याएं "<<lowerbound<<" और "<<upperbound<<" के बीच हैं: "; 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; } आउटपुट
आर्मस्ट्रांग संख्याएं 100 और 500 के बीच हैं: 153 370 371 407
उपरोक्त प्रोग्राम में, दिए गए अंतराल के बीच आर्मस्ट्रांग संख्याएं खोजी जाती हैं। यह कई चरणों का उपयोग करके किया जाता है। अंतराल के lowerbound और upperbound दिए गए हैं। इनका उपयोग करके, lowerbound से upperbound तक एक फॉर लूप शुरू किया जाता है और प्रत्येक संख्या का मूल्यांकन किया जाता है कि यह आर्मस्ट्रांग संख्या है या नहीं।
यह निम्नलिखित कोड स्निपेट में देखा जा सकता है।
lowerbound = 100; upperbound = 500; cout<<"आर्मस्ट्रांग संख्याएं "<<lowerbound<<" और "<<upperbound<<" के बीच हैं: "; for(int num = lowerbound; num <= upperbound; num++)
फॉर लूप में, पहले संख्या में अंकों की संख्या यानी num में पाई जाती है। यह प्रत्येक अंक के लिए digitNum में एक जोड़कर किया जाता है।
यह निम्नलिखित कोड स्निपेट द्वारा प्रदर्शित होता है।
temp = num; digitNum = 0; while (temp != 0) { digitNum++; temp = temp/10; } अंकों की संख्या ज्ञात होने के बाद, digitSum की गणना प्रत्येक अंक को digitNum की घात पर उठाकर यानी अंकों की संख्या पर जोड़कर की जाती है।
यह निम्नलिखित कोड स्निपेट में देखा जा सकता है।
temp = num; digitSum = 0; while (temp != 0) { remainderNum = temp%10; digitSum = digitSum + pow(remainderNum, digitNum); temp = temp/10; } यदि संख्या digitSum के बराबर है, तो वह संख्या आर्मस्ट्रांग संख्या है और इसे प्रिंट किया जाता है। यदि नहीं, तो यह आर्मस्ट्रांग संख्या नहीं है। यह नीचे दिए गए कोड स्निपेट में देखा जाता है।
if (num == digitSum) cout<<num<<" ";