活动介绍

编写JAVA程序求小于N的最大素数。 要求:输入一个正整数N(N>2),程序经分析处理输出小于N的最大素数。

时间: 2024-10-23 14:11:10 AIGC 浏览: 71
编写一个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(); } } ```
阅读全文

相关推荐