จำนวนเต็มเรียกว่าหมายเลขลำดับอาร์มสตรอง n หากทุกหลักแยกออกและลูกบาศก์และสรุปผลรวมจะเหมือนกับตัวเลขเช่น abcd... =a 3 + b 3 + ค 3 + ง 3 + ...
ในกรณีของตัวเลขอาร์มสตรอง 3 หลัก ผลรวมของลูกบาศก์ของแต่ละหลักจะเท่ากับตัวเลขนั้นเอง ตัวอย่างเช่น:
153 =1 3 + 5 3 + 3 3 // 153 คือเลขอาร์มสตรอง
Input: Enter two numbers(intervals):999 9999 Output: Armstrong numbers between 999 and 9999 are: 1634 8208 9474
คำอธิบาย
1634 = 13+63+33+43 = 1+216+27+64 = 1634
วิธีการดำเนินการด้านล่างนั้นง่าย เราสำรวจผ่านตัวเลขทั้งหมดในช่วงที่กำหนด สำหรับทุกๆ ตัวเลข เราจะนับจำนวนหลักในนั้นก่อน ให้จำนวนหลักในจำนวนปัจจุบันเป็น n เราหาผลรวมของลูกบาศก์ของตัวเลขทั้งหมด หากผลรวมเท่ากับ I ให้พิมพ์ตัวเลข
ตัวอย่าง
#include <stdio.h> #include <math.h> int main() { int low = 100; int high = 400; printf("The amstrong numbers between %d and %d is \n",low,high); for (int i = low+1; i < high; ++i) { int x = i; int n = 0; while (x != 0) { x /= 10; ++n; } int pow_sum = 0; x = i; while (x != 0) { int digit = x % 10; pow_sum += pow(digit, n); x /= 10; } if (pow_sum == i) printf("%d ", i); } printf("\n"); return 0; }