java 计算并输出100以内的全部质数。
时间: 2023-12-26 08:06:23 浏览: 29
好的,以下是 Java 代码实现:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int n = 100;
for (int i = 2; i <= n; i++) {
boolean isPrime = true;
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
System.out.print(i + " ");
}
}
}
}
```
这段代码使用了双重循环,外层循环从2开始到100,内层循环从2开始到i的平方根,判断i是否能够被内层循环中的任何数整除,如果能,就不是质数;否则就是质数,输出i。
相关问题
计算并输出100以内的所有素数。java
代码如下:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int i, j;
boolean isPrime;
// 打印2
System.out.println("2");
// 判断3~100之间的每个数是否为素数
for (i = 3; i <= 100; i++) {
// 判断i是否为素数
isPrime = true;
for (j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
// 如果i为素数,则将其打印出来
if (isPrime == true) {
System.out.println(i);
}
}
}
}
```
程序输出:
```
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
```
用Java计算100以内的素数并输出。详细写出相应代码
```java
public class PrimeNumbers {
public static void main(String[] args) {
int n = 100;
boolean[] isPrime = new boolean[n + 1]; // 用于标记每个数是否为素数,默认值为false
for (int i = 2; i <= n; i++) {
isPrime[i] = true; // 先假设每个数都是素数
}
// 从2开始遍历到n,依次标记每个数的倍数为非素数
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 + " ");
}
}
}
}
```
代码解释:
1. 定义一个布尔类型的数组`isPrime`,长度为n+1,表示每个数是否为素数,默认值为false。
2. 从2开始遍历到n,依次标记每个数的倍数为非素数。在这里,我们只需要遍历到sqrt(n)即可,因为如果一个数不是素数,它一定有一个小于sqrt(n)的因子。
3. 输出所有素数。