เลขอาร์มสตรอง (Armstrong Number) คืออะไร?
เลขอาร์มสตรองคือเลขที่ผลรวมของเลขยกกำลังสามของแต่ละหลักเท่ากับตัวเลขนั้นเอง
ตัวอย่าง: 153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153 ✓
อัลกอริทึมการตรวจสอบ
- เก็บตัวเลขต้นฉบับไว้เปรียบเทียบ
- วนลูปหาเศษ (Remainder) ของแต่ละหลักโดยหาร 10
- นำเศษมายกกำลัง 3 แล้วบวกสะสม
- หารตัวเลขด้วย 10 เพื่อตัดหลักสุดท้ายออก
- ทำซ้ำจนกว่าตัวเลขจะเหลือ 0
- เปรียบเทียบผลรวมกับตัวเลขต้นฉบับ
โค้ดตัวอย่างสมบูรณ์
using System;
namespace ArmstrongNumber {
class Program {
static void Main(string[] args) {
Console.Write("ป้อนตัวเลข: ");
int num = Convert.ToInt32(Console.ReadLine());
int originalNum = num;
int sum = 0;
while (num > 0) {
int rem = num % 10; // หาเศษ (หลักสุดท้าย)
sum += rem * rem * rem; // ยกกำลัง 3 และบวกสะสม
num /= 10; // ตัดหลักสุดท้ายออก
}
if (sum == originalNum) {
Console.WriteLine("{0} เป็นเลขอาร์มสตรอง!", originalNum);
} else {
Console.WriteLine("{0} ไม่ใช่เลขอาร์มสตรอง!", originalNum);
}
Console.ReadKey();
}
}
}
ตัวอย่างผลลัพธ์
ป้อนตัวเลข: 153
153 เป็นเลขอาร์มสตรอง!
ป้อนตัวเลข: 370
370 เป็นเลขอาร์มสตรอง!
ป้อนตัวเลข: 123
123 ไม่ใช่เลขอาร์มสตรอง!
เลขอาร์มสตรองที่พบบ่อย (3 หลัก)
- 153 = 1³ + 5³ + 3³
- 370 = 3³ + 7³ + 0³
- 371 = 3³ + 7³ + 1³
- 407 = 4³ + 0³ + 7³
ขยายความ: n-Digit Armstrong Number
สำหรับเลข n หลัก ให้ยกกำลัง n แทนที่จะเป็นกำลัง 3:
// สำหรับเลข 4 หลัก เช่น 1634
// 1⁴ + 6⁴ + 3⁴ + 4⁴ = 1 + 1296 + 81 + 256 = 1634