写一个 Java 程序,计算并输出从 1 到用户指定的数字 n 中,所有“幸运数字”。幸运数字的定义如下:条件 1:数字的所有位数(如个位、十位)加起来的和是 7 的倍数。条件 2:数字本身是一个质数
时间: 2024-10-06 13:05:16 浏览: 44
在 Java 中,你可以编写一个程序来检查每个数字是否满足这两个条件。首先,我们需要创建一个辅助函数来检查一个数字是否是质数,然后遍历给定范围内的每一个数字,判断其是否符合条件一和条件二。以下是实现这个功能的一个简单示例:
```java
public class LuckyNumbers {
public static boolean isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
public static void findLuckyNumbers(int n) {
for (int i = 1; i <= n; i++) {
int sumOfDigits = getSumOfDigits(i);
if (sumOfDigits % 7 == 0 && isPrime(i)) {
System.out.println("Number " + i + " is a lucky number.");
}
}
}
private static int getSumOfDigits(int num) {
int sum = 0;
while (num > 0) {
sum += num % 10;
num /= 10;
}
return sum;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the upper limit of numbers to check: ");
int n = scanner.nextInt();
scanner.close();
findLuckyNumbers(n);
}
}
```
在这个程序中,`isPrime()` 函数用于检查质数,`getSumOfDigits()` 计算一个数字各位数字之和,`findLuckyNumbers()` 遍历指定范围内找出幸运数字,并打印出来。
阅读全文