java寻找指定范围内的素数 指定上限下限,以数组保存指定范围内的素数
时间: 2024-10-17 18:05:33 浏览: 31
在 Java 中,我们可以编写一个函数来找到给定范围内的所有质数(素数)。质数是指只有两个正因数(1和它本身)的自然数。以下是步骤:
1. 创建一个名为 `findPrimes` 的函数,接收两个整数参数,上界(inclusive)`upperLimit` 和下界(inclusive)`lowerLimit`。
```java
public static int[] findPrimes(int lowerLimit, int upperLimit) {
```
2. 初始化一个空数组 `primes` 来存储结果。
3. 使用嵌套循环遍历范围内的每个数字。外层循环从 `lowerLimit` 到 `upperLimit`,内层循环检查是否为质数。
4. 检查一个数字 `num` 是否为质数,可以使用嵌套的 `for` 循环从 2 开始到其平方根,如果能整除,则不是质数。如果遍历完内层循环都没有找到因子,则它是质数。
5. 将质数添加到 `primes` 数组中,并跳过所有小于之前的质数,因为它们都是已经检查过的。
6. 返回包含质数的数组 `primes`。
下面是完整的示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class PrimeFinder {
public static List<Integer> findPrimes(int lowerLimit, int upperLimit) {
List<Integer> primes = new ArrayList<>();
for (int num = lowerLimit; num <= upperLimit; num++) {
if (isPrime(num)) {
primes.add(num);
}
}
return primes.stream().toArray(Integer[]::new); // 转换为int数组
}
private static 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;
}
public static void main(String[] args) {
int[] result = findPrimes(10, 50);
System.out.println(Arrays.toString(result));
//
阅读全文