如何用java找到1000以内所有的素数
时间: 2024-09-27 15:18:22 浏览: 58
在Java中,我们可以使用Sieve of Eratosthenes算法来找出1000以内的所有素数。这个经典的算法通过迭代排除的方式,逐步筛选出所有的素数。以下是简单的步骤:
1. 创建一个长度为1000+1的布尔数组`isPrime`,初始值都设置为true,因为默认认为每个数字都是质数。
2. 从2开始(最小的质数),将`isPrime[2]`设为false,然后遍历到√1000,每次检查当前数字i是否为质数:
a. 如果`isPrime[i]`为true,则它是质数,将它的倍数(除了它自身)标记为合数:`isPrime[j * i] = false`,其中j从2到(i / j)。
3. 遍历结束后,`isPrime`数组中值为true的位置对应的数字就是素数。
以下是对应的Java代码实现:
```java
public static void printPrimes(int n) {
boolean[] isPrime = new boolean[n + 1];
Arrays.fill(isPrime, true);
for (int i = 2; i * i <= n; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
for (int i = 2; i < n; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
}
// 打印1000以内的素数
printPrimes(1000);
```
阅读全文
相关推荐
![7z](https://img-home.csdnimg.cn/images/20241231044736.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)