आर्मस्ट्रांग संख्या (Armstrong Number) जिसे नार्सिसिस्टिक संख्या भी कहते हैं, एक ऐसी संख्या है जो अपने अंकों की घातों के योग के बराबर होती है। n अंकों की संख्या के लिए: प्रत्येक अंक की nवीं घात का योग संख्या के बराबर होता है।
उदाहरण: 3-अंकीय संख्याओं के लिए
153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153 ✓
370 = 3³ + 7³ + 0³ = 27 + 343 + 0 = 370 ✓
371 = 3³ + 7³ + 1³ = 27 + 343 + 1 = 371 ✓
407 = 4³ + 0³ + 7³ = 64 + 0 + 343 = 407 ✓
सामान्य एल्गोरिदम (किसी भी अंक लंबाई के लिए)
int original = number;
int digits = number.ToString().Length;
int sum = 0;
while (number > 0) {
int digit = number % 10;
sum += (int)Math.Pow(digit, digits);
number /= 10;
}
bool isArmstrong = (sum == original);
उदाहरण: 3-अंकीय संख्याओं के लिए सरल संस्करण
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo {
class ApplicationNew {
static void Main(string[] args) {
int val = 153, sum = 0;
int rem;
// आर्मस्ट्रांग जांच (3 अंकों के लिए घन)
for (int i = val; i > 0; i = i / 10) {
rem = i % 10;
sum = sum + rem * rem * rem;
}
if (sum == val) {
Console.Write("Armstrong Number");
} else {
Console.Write("Not an Armstrong Number");
}
Console.ReadLine();
}
}
}
आउटपुट
Armstrong Number
सामान्य फंक्शन (किसी भी लंबाई के लिए)
public static bool IsArmstrong(int number) {
if (number < 0) return false;
int original = number;
int digits = number.ToString().Length;
int sum = 0;
while (number > 0) {
int digit = number % 10;
sum += (int)Math.Pow(digit, digits);
number /= 10;
}
return sum == original;
}
// टेस्ट
Console.WriteLine(IsArmstrong(153)); // True
Console.WriteLine(IsArmstrong(9474)); // True (9⁴+4⁴+7⁴+4⁴)
Console.WriteLine(IsArmstrong(123)); // False
ज्ञात आर्मस्ट्रांग संख्याएं (बेस-10)
- 1 अंक: 0-9 (सभी)
- 3 अंक: 153, 370, 371, 407
- 4 अंक: 1634, 8208, 9474
- 5 अंक: 54748, 92727, 93084
- 6 अंक: 548834
मुख्य बिंदु
- मूल कोड केवल 3-अंकीय संख्याओं के लिए काम करता है (क्यूब उपयोग करता है)।
- सामान्य संस्करण अंकों की गिनती करके सही घात उपयोग करता है।
Math.Powdoubleलौटाता है - कास्टिंग आवश्यक।- बड़ी संख्याओं के लिए
BigIntegerउपयोग करें।