用于检查两个整数之间的阿姆斯壮数的Java程序
如果满足以下条件,则数字为 p、q、r、s... 的正整数被称为 n 阶阿姆斯特朗数。
pqrs... = pn + qn + rn + sn +....
例子:
370 = 3*3*3 + 7*7*7 + 0
= 27 + 343 + 0
= 370
因此,370 是阿姆斯壮数。
例子:
Input : 100 200
Output :153
Explanation : 100 and 200 are given
two integers.
153 = 1*1*1 + 5*5*5 + 3*3*3
= 1 + 125 + 27
= 153
Therefore, only 153 is an Armstrong number between 100 and 200.
方法:
首先,我们将遍历给定范围内的所有数字。然后,对于每个数字,我们必须计算其中的位数。如果当前数字的位数为 n,则求该数中所有数字的 (n) 次幂之和。如果总和等于当前数字i ,则打印该数字。
例子:
Java
// JAVA program to find Armstrong
// numbers between two integers
import java.io.*;
import java.math.*;
class gfg {
// Function to print Armstrong
// Numbers between two integers
static void ArmstrongNum(int l, int h)
{
for (int j = l + 1; j < h; ++j) {
// Calculating number of digits
int y = j;
int N = 0;
while (y != 0) {
y /= 10;
++N;
}
// Calculating the sum of nth
// power of all the digits
int sum_power = 0;
y = j;
while (y != 0) {
int d = y % 10;
sum_power += Math.pow(d, N);
y /= 10;
}
// Checking if the current number
// i is equal to the sum of nth
// power of all the digits
if (sum_power == j)
System.out.print(j + " ");
}
}
// The Driver code
public static void main(String args[])
{
int n1 = 50;
int n2 = 500;
ArmstrongNum(n1, n2);
System.out.println();
}
}
输出
153 370 371 407
同样,我们可以在任何给定范围内找到阿姆斯特朗数。