用Java写一个1到1000质数
时间: 2023-08-31 16:36:43 浏览: 93
求1~1000质数,算法实现相对简单
### 回答1:
我可以给你一个思路:
1. 创建一个数组,用来存储1到1000的数字;
2. 从2开始,依次循环数组,将可以被2整除的数字都排除掉;
3. 将3开始,依次循环数组,将可以被3整除的数字都排除掉;
4. 依次类推,直到被1000整除;
5. 剩下的数字就是质数。
### 回答2:
要用Java编写一个求解1到1000之间的质数的程序,可以使用双层循环筛选法。
首先,我们可以创建一个标志数组来表示每个数字是否为质数。初始化时,将所有数字都设为质数。然后从2开始遍历到1000,对于每一个数字,检查其是否被标记为质数。如果是质数,则将其所有倍数均标记为非质数。
下面是一个用Java编写的简单示例代码:
```java
public class PrimeNumbers {
public static void main(String[] args) {
boolean[] isPrime = new boolean[1001];
// 初始化所有数字为质数
for (int i = 2; i <= 1000; i++) {
isPrime[i] = true;
}
// 使用筛选法求解质数
for (int i = 2; i <= Math.sqrt(1000); i++) {
if (isPrime[i]) {
for (int j = i * i; j <= 1000; j += i) {
isPrime[j] = false;
}
}
}
// 输出所有质数
for (int i = 2; i <= 1000; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
}
}
```
上述代码中,首先创建了一个布尔类型的数组isPrime,用于标记每个数字是否为质数。然后将所有数字初始化为质数。接下来使用双层循环进行筛选,如果某个数字被标记为质数,则将其所有倍数标记为非质数。最后,输出所有标记为质数的数字。
执行上述代码后,控制台将输出从1到1000之间的所有质数。
阅读全文