题解 | #判断素数个数#

判断素数个数

https://www.nowcoder.com/practice/c6ad83181a17408eb7605d51a251dd9a

import java.util.Scanner;

//埃筛法
public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int left = scan.nextInt(), right = scan.nextInt();
		left = left > right ? left + right - (right = left) : left;
		boolean[] st = new boolean[right + 1];
		for (int i = 2; i * i <= right; i++) {
			if (!st[i]) {
				for (int j = i * i; j <= right; j += i) {
					st[j] = true;
				}
			}
		}
		int res = 0;
		for (int i = Math.max(3, left); i <= right; i++) {
			if (!st[i]) {
				res++;
			}
		}
		System.out.println(left + "到" + right + "之间有" + res + "个大于2的素数");
	}
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务