使用集合实现筛选法求素数 输入一个大于2的自然数 说出小于该数字的所有素数组成的集合
时间: 2024-11-30 13:16:02 浏览: 21
使用集合(如Java中的HashSet或List)来筛选素数是一种常见的算法应用。以下是基本步骤:
1. 首先,创建一个空的集合,用于存储素数。
2. 接着,从输入的数字开始,遍历到该数字减一。因为我们要找出所有小于这个数字的素数,所以循环范围设定为2到输入数 - 1。
3. 对于每个数i,检查它是否为素数。判断方法是:除了1和i本身外,如果没有任何一个小于它的数可以整除i,那么i就是素数。这一步通常通过一个循环来完成,如果发现能被整除的因子,就跳出循环并继续下一个数。
4. 如果i是素数,将它添加到集合中。
5. 循环结束后,集合中存储的就是所有小于输入数的素数。
以下是一个简单的Java代码示例:
```java
import java.util.ArrayList;
import java.util.HashSet;
public class PrimeNumbers {
public static HashSet<Integer> sieve(int n) {
HashSet<Integer> primes = new HashSet<>();
for (int i = 2; i < n; ++i) {
if (isPrime(i)) {
primes.add(i);
}
}
return primes;
}
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 input = 20; // 你可以替换为你需要查询的任意正整数
HashSet<Integer> primeSet = sieve(input);
System.out.println("小于" + input + "的所有素数有: " + primeSet);
}
}
```
阅读全文