2. 用对象思想求解:编写一个 Java 程序,计算并输出从 1 到用户指定的数字 n 中,所有“幸运数字”。幸运数字的定义如下:条件 1:数字的所有位数(如个位、十位)加起来的和是 7 的倍数。条件 2:数字本身是一个质数
时间: 2024-10-23 15:14:45 浏览: 45
在Java中,我们可以使用对象思想来设计一个程序,首先创建两个类:` LuckyNumber ` 和 ` PrimeNumber `,分别用于检查是否满足条件1(位数之和为7的倍数)和条件2(质数)。然后在主程序中让用户输入n值,遍历并找出符合条件的幸运数字。
```java
// 定义 LuckyNumber 类,检查位数之和是否为7的倍数
class LuckyNumber {
private int number;
public LuckyNumber(int num) {
this.number = num;
}
// 检查位数和是否为7的倍数
public boolean isLucky() {
int sumOfDigits = 0;
String strNum = Integer.toString(number);
for (char digit : strNum.toCharArray()) {
sumOfDigits += Character.getNumericValue(digit);
}
return sumOfDigits % 7 == 0;
}
}
// 定义 PrimeNumber 类,检查数字是否为质数
class PrimeNumber {
private int num;
public PrimeNumber(int num) {
this.num = num;
}
// 检查是否为质数
public boolean isPrime() {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正整数 n: ");
int n = scanner.nextInt();
for (int i = 1; i <= n; i++) {
LuckyNumber lucky = new LuckyNumber(i);
if (lucky.isLucky()) {
PrimeNumber primeCheck = new PrimeNumber(lucky.getNumber());
if (primeCheck.isPrime()) {
System.out.println("数字 " + i + " 是一个幸运数字,因为它既是幸运数又是质数");
}
}
}
scanner.close();
}
}
```
阅读全文