问题:
使用java语言编辑,用筛法求之N内的素数。。
示例 :输入N。输出0~N的素数。
解答思路
以下是使用 Java 实现筛法求 N 以内的素数的代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入 N:");
int N = scanner.nextInt();
boolean[] isPrime = new boolean[N + 1];
for (int i = 2; i <= N; i++) {
isPrime[i] = true;
}
for (int i = 2; i * i <= N; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= N; j += i) {
isPrime[j] = false;
}
}
}
System.out.println("0~N 的素数:");
for (int i = 2; i <= N; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
}
}
上述代码中,首先定义了一个布尔类型的数组'isPrime',用于标记每个数是否为素数。然后,通过两层循环,从 2 开始,依次将每个数的倍数标记为非素数。最后,遍历'isPrime'数组,输出所有标记为素数的数。
(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)