求1到1000的素数有多少个用java语言表达
时间: 2023-05-19 09:04:45 浏览: 41
以下是Java代码,用于计算1到1000之间的素数数量:
```
public class PrimeNumbers {
public static void main(String[] args) {
int count = 0;
for (int i = 2; i <= 1000; i++) {
boolean isPrime = true;
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
count++;
}
}
System.out.println("1到1000之间的素数数量为:" + count);
}
}
```
答案是:1到1000之间的素数数量为:168。
相关问题
用Java写一个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之间的所有质数。
java 求1到1000内的全部素数
以下是 Java 代码,用于求解 1 到 1000 内的全部素数:
```java
public class PrimeNumber {
public static void main(String[] args) {
int n = 1000;
boolean[] isPrime = new boolean[n + 1];
Arrays.fill(isPrime, true);
isPrime[0] = false;
isPrime[1] = false;
for (int i = 2; i * i <= n; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
System.out.println("1到1000内的全部素数为:");
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
}
}
```
该程序使用了一个布尔类型的数组 `isPrime`,用来记录每个数是否为素数,初始化时全部置为 `true`。我们首先将 0 和 1 标记为非素数,然后从 2 开始遍历数组,如果当前数字为素数,则将其倍数全部标记为非素数。最后再遍历一遍数组,输出所有为素数的数字即可。