用java写一个从1-100的质数筛选代码
时间: 2023-02-27 21:47:54 浏览: 97
好的,以下是一个在 Java 中实现 1-100 范围内质数筛选的代码:
```
public class PrimeNumbers {
public static void main(String[] args) {
int n = 100;
System.out.println("从 1 到 " + n + " 之间的质数有:");
for (int i = 2; i <= n; i++) {
boolean isPrime = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
System.out.print(i + " ");
}
}
}
}
```
这段代码的工作原理是:从 2 开始循环到 n,每次都判断它是否是质数,如果是,则输出它的值。判断一个数是否是质数的方法是通过再次循环,把当前数从 2 到它的前一个数,依次除以每个数,如果有任何一个数能够整除当前数,则当前数不是质数。
相关问题
用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编程实现输出0-100中所有的质数(大子1且只被1和本身整除的数)。
在Java编程中,我们可以使用一种名为“埃拉托斯特尼筛法”(Sieve of Eratosthenes)的经典算法来找出0到100范围内的所有质数。这个算法通过遍历从2开始的所有数字,将它们的倍数标记为非质数,然后逐步筛选出剩下的就是质数。
下面是一个简单的Java代码示例:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int n = 100;
boolean[] isPrime = new boolean[n + 1]; // 初始化一个布尔数组表示每个数是否为质数
// 把0和1标记为非质数
isPrime[0] = isPrime[1] = false;
// 遍历2到n,如果当前数是质数,则标记它的所有倍数为非质数
for (int i = 2; i <= Math.sqrt(n); i++) {
if (isPrime[i]) { // 如果i是质数
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false; // 将i的倍数标记为非质数
}
}
}
// 输出所有的质数
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
}
}
```
运行此程序,你会看到输出结果为0到100之间的所有质数。
阅读全文