题目描述
编程求 2 ~ 𝑛(n 为大于 2 的正整数)中有多少个素数。
输入格式
输入 𝑛(2≤𝑛≤50000)n(2≤n≤50000)。
输出格式
素数个数。
输入输出样例
输入 #1
10
输出 #1
4
代码实现:
import java.util.Scanner;
public class SuShu {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
suShu(n);
}
public static void suShu(int n) {
int count = 0;
// 对每个数进行判断是否为素数
for (int i = 2; i <= n; i++) {
boolean isPrime = true; // 默认为素数
// 判断是否有因子
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
isPrime = false; // 有因子,不是素数
break;
}
}
if (isPrime) {
count++; // 素数计数加1
}
}
System.out.println(count);
}
}