欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

筛选法求质数(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);
			}
		}
	}
}

 

相关标签: 筛选质数 Java