编写JAVA程序求小于N的最大素数。 要求:输入一个正整数N(N>2),程序经分析处理输出小于N的最大素数。
时间: 2024-10-23 09:11:10 浏览: 29
java代码-使用java编写程序打印出N以内的素数的源代码
编写一个Java程序来求解这个问题,可以采用筛选法(Sieve of Eratosthenes)来寻找小于给定数N的所有素数。下面是简单的步骤:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数 N(N > 2):");
int n = scanner.nextInt();
if (n <= 2) {
System.out.println("小于 N 的最大素数不存在,因为最小的素数是 2,而您输入的是 2 或者更小的数。");
} else {
boolean[] isPrime = new boolean[n + 1]; // 假设所有数字都是质数
for (int i = 2; i * i <= n; i++) { // 只需检查到根号n即可
if (isPrime[i]) { // 如果i是质数
for (int j = i * i; j <= n; j += i) { // 标记i的倍数为非质数
isPrime[j] = false;
}
}
}
// 输出最大的素数
int maxPrimeBelowN = n;
for (int i = n - 1; i >= 2; i--) {
if (isPrime[i]) {
maxPrimeBelowN = i;
break;
}
}
System.out.printf("小于 %d 的最大素数是 %d.", n, maxPrimeBelowN);
}
scanner.close();
}
}
```
阅读全文