编写一个 Java 程序,计算并输出从 1 到用户指定的数字 n 中,所有“幸运数字”。幸运数字的定义如下:条件 1:数字的所有位数(如个位、十位)加起来的和是 7 的倍数。条件 2:数字本身是一个质数。
时间: 2024-09-20 17:18:14 浏览: 58
编写一个Java程序来计算和输出1到用户指定的n范围内的幸运数字,首先需要编写两个辅助函数:一个是判断数字是否是质数,另一个是检查数字的各位数字之和是否是7的倍数。
```java
import java.util.Scanner;
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 int sumOfDigits(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.println("请输入一个正整数n:");
int n = scanner.nextInt();
System.out.println("从1到" + n + "中的幸运数字有:");
for (int i = 1; i <= n; i++) {
if (isPrime(i) && sumOfDigits(i) % 7 == 0) {
System.out.println(i);
}
}
scanner.close();
}
}
```
在这个程序中,主函数会提示用户输入一个正整数n,然后遍历这个范围内的每个数字,使用`isPrime`函数检查是否为质数,使用`sumOfDigits`函数检查各位数字之和是否能被7整除。如果满足这两个条件,就将该数字输出。
阅读全文