求1万内的素数java实现
时间: 2024-03-01 13:53:54 浏览: 67
以下是求1万以内素数的Java实现代码:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int n = 10000;
boolean[] isPrime = new boolean[n + 1];
// 初始化数组,假设所有数都是素数
for (int i = 2; i <= n; i++) {
isPrime[i] = true;
}
// 遍历数组,将非素数标记为false
for (int i = 2; i <= Math.sqrt(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 + " ");
}
}
}
}
```
上述代码中,我们使用了埃拉托色尼筛法(Sieve of Eratosthenes)来求解素数。算法原理是先初始化一个长度为n+1的布尔型数组,假设所有数都是素数,然后从2开始遍历数组,将所有非素数标记为false。最后遍历数组,将所有标记为true的数输出即可。
注意,由于1不是素数,因此代码中数组的长度为n+1,而非n。
阅读全文