题解 | #判断素数个数#
判断素数个数
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的素数"); } }