java输入不小于3的正整数n,计算不超过n的素数个数
时间: 2024-09-19 14:18:12 浏览: 37
Java实现求小于n的质数的3种方法
在Java中,你可以通过以下步骤编写一个程序来计算不超过给定正整数`n`的所有素数的数量:
1. 首先,你需要编写一个函数来检查一个数字是否为素数。这通常通过从2到其平方根遍历并检查是否有除1和自身以外的因子来完成。
```java
public boolean isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
```
2. 然后,创建一个计数器变量,初始化为0,用于存储素数的数量。从3开始遍历,直到`n`,对于每个数,如果它是素数则增加计数器。
```java
int count = 0;
for (int i = 3; i <= n; i += 2) { // 只需检查奇数,因为偶数除了2以外都是合数
if (isPrime(i)) {
count++;
}
}
```
3. 最后,返回计数器的值即为不超过`n`的素数个数。
```java
System.out.println("不超过 " + n + " 的素数个数为: " + count);
```
完整代码示例:
```java
import java.util.Scanner;
public class PrimeCount {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个不小于3的正整数n: ");
int n = scanner.nextInt();
if (n < 3) {
System.out.println("错误:输入必须大于等于3");
return;
}
public boolean isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
int count = 0;
for (int i = 3; i <= n; i += 2) {
if (isPrime(i)) {
count++;
}
}
System.out.println("不超过 " + n + " 的素数个数为: " + count);
}
}
```
阅读全文