帮我用java写一个程序,要求如下:1. 输出所有的水仙花数,所谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身,例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
时间: 2023-12-05 18:03:27 浏览: 19
好的,以下是用Java编写的程序,用于输出所有的水仙花数:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int a = i / 100; // 百位数
int b = i % 100 / 10; // 十位数
int c = i % 10; // 个位数
if (a * a * a + b * b * b + c * c * c == i) {
System.out.println(i);
}
}
}
}
```
程序的思路是先通过循环遍历100到999之间的所有数字,然后将每个数字拆分成百位数、十位数和个位数,分别计算它们的立方和是否等于该数字本身,如果是,则输出该数字。
相关问题
请帮我用java程序实现下列这个需求:输出所有既是水仙花数又是质数的自然数
好的,我可以帮您解决这个问题。下面是 Java 代码实现:
```
public class Main {
public static void main(String[] args) {
for (int i = 2; i <= 999; i++) {
if (isPrime(i) && isNarcissistic(i)) {
System.out.println(i);
}
}
}
// 判断一个数是否为质数
private static boolean isPrime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
// 判断一个数是否为水仙花数
private static boolean isNarcissistic(int num) {
int sum = 0;
int n = num;
int len = String.valueOf(num).length();
while (n > 0) {
int digit = n % 10;
sum += Math.pow(digit, len);
n /= 10;
}
return sum == num;
}
}
```
运行程序后,会输出所有既是水仙花数又是质数的自然数。
使用java语言编写一个这样的程序:判断一个三位整数,是否是水仙花数
可以使用Java编写一个程序来判断一个三位整数是否是水仙花数。水仙花数是指一个三位数,它的各个位上的数字的立方和等于该数本身。
以下是一个示例程序:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int number = 153; // 要判断的三位整数
// 获取百位、十位和个位上的数字
int hundreds = number / 100;
int tens = (number / 10) % 10;
int ones = number % 10;
// 判断是否为水仙花数
if (number == (Math.pow(hundreds, 3) + Math.pow(tens, 3) + Math.pow(ones, 3))) {
System.out.println(number + " 是水仙花数!");
} else {
System.out.println(number + " 不是水仙花数!");
}
}
}
```
在上面的示例中,我们以153为例进行判断。首先,我们将153分解为百位、十位和个位上的数字。然后,计算各个位上数字的立方和,并与原始的三位整数进行比较。如果相等,则输出该数是水仙花数,否则输出不是水仙花数。
你可以将要判断的三位整数赋值给`number`变量,运行程序来验证其他数是否为水仙花数。