在下列情况下,正整数称为Armstrong数( n阶):
abcd... = an + bn + cn + dn + ...
对于3位数的阿姆斯特朗数,每个数位的立方和等于该数字本身。例如, 153是Armstrong的数字,因为:
153 = 1*1*1 + 5*5*5 + 3*3*3
同样, 1634是阿姆斯特朗数,因为:
1634 = 1*1*1*1 + 6*6*6*6* + 3*3*3*3 + 4*4*4*4
在尝试该程序之前,请访问JavaScript程序以检查Armstrong号。
示例:两个间隔之间的阿姆斯壮数
// program to find Armstrong number between intervals
// take an input
let lowNumber = parseInt(prompt('Enter a positive low integer value: '));
let highNumber = parseInt(prompt('Enter a positive high integer value: '));
console.log ('Armstrong Numbers:');
// looping through lowNumber to highNumber
for (let i = lowNumber; i <= highNumber; i++) {
// converting number to string
let numberOfDigits = i.toString().length;
let sum = 0;
// create a temporary variable
let temp = i;
/* loop through a number to find if
a number is an Armstrong number */
while (temp > 0) {
let remainder = temp % 10;
sum += remainder ** numberOfDigits;
// removing last digit from the number
temp = parseInt(temp / 10); // convert float into integer
}
if (sum == i) {
console.log(i);
}
}
输出
Enter a positive low integer value: 8
Enter a positive high integer value: 500
Armstrong Numbers:
8
9
153
370
371
407
在上面的程序中,提示用户输入两个整数。一个是较低的间隔整数,另一个是较高的整数值。
parseInt()
将数字字符串值转换为整数值。
for
循环用于循环用户提供的两个数字。
toString()
方法用于将数字转换为字符串。 length
属性用于查找数字中的总位数。
let numberOfDigits = i.toString().length;
在第一次for
循环迭代中( i = 8 ),
- 用户输入的较低数字存储在临时变量
temp
。 -
while
循环用于迭代数字。- 模运算符
%
用于获取每个数字。当数字除以10时 ,余数是最后一位数字。在第一次迭代中,8 % 10
给出8 。 - 其余部分乘以该数字中的位数(此处为1 ),然后计算出总和。
- 数字除以10以除去最后一位,即
8 / 10
给出0。
- 模运算符
- 最后,将总和与用户输入的数字进行比较。如果总和与数字相等,则显示阿姆斯壮数字。
用户提供的所有中间数字将继续循环。在上面的示例中,循环执行8到500次 。