筛选法求质数(Java实现)
程序员文章站
2024-03-15 11:09:37
...
筛选法求质数:输入一个整数 n,求小于这个整数的所有质数。
算法:定义一个长度为 n 的 boolean 数组,true 表示是质数,false 表示不是质数。初始均为 true。
之后从 2 开始循环:
import java.util.Scanner;
/**
* ScannerPrimeNumber.java
* @author anyunpei
*2018年7月22日下午4:19:50
*扫描法寻找质数
*/
public class ScannerPrimeNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
boolean[] bs = new boolean[n];
for (int i = 2; i < bs.length; i++) {// 从2开始
for (int j = i + 1; j < bs.length; j++) {//j=i+1 因为i与j必能除尽,从i+1循环就行。
if (j % i == 0) {
bs[j] = true;// 因为boolean默认为false,因此在这里不再全赋值为true再把符合条件的值赋值为false
// 而直接把符合条件的值赋值为true
}
}
}
for (int i = 2; i < bs.length; i++) {// 0和1不是质数,因此从2开始循环
if (bs[i] == false) {
System.out.println(i);
}
}
}
}
上一篇: Docker中两个容器之间实现数据共享
下一篇: Java求质数