编写程序求小于N的最大素数。 要求:输入一个正整数N(N>2),程序经分析处理输出小于N的最大素数。java
时间: 2024-10-11 11:06:11 浏览: 38
C语言程序设计-求给定正整数n以内的素数之积;(n<28).c
5星 · 资源好评率100%
编写一个Java程序来找到小于给定正整数N的最大素数,你可以采用埃拉托斯特尼筛法(Sieve of Eratosthenes)。下面是一个简单的步骤和代码示例:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正整数 N (N > 2): ");
int n = scanner.nextInt();
// 验证输入是否大于2,因为2是最小的质数
if (n <= 2) {
System.out.println("输入的数字不大于2,最小的质数是2。");
} else {
boolean[] isPrime = new boolean[n];
for (int i = 2; i * i < n; i++) {
// 如果i是素数,标记其倍数为非素数
if (isPrime[i]) {
for (int j = i * i; j < n; j += i) {
isPrime[j] = false;
}
}
}
// 找到并打印最大的素数
int maxPrime = 0;
for (int i = 2; i < n; i++) {
if (isPrime[i]) {
maxPrime = i;
}
}
System.out.println("小于 " + n + " 的最大素数是: " + maxPrime);
}
scanner.close();
}
}
```
这个程序首先创建一个布尔数组`isPrime`来表示每个数是否为素数。然后通过循环排除所有非素数,最后遍历数组找出小于N的最大素数。
阅读全文