【发布时间】:2016-06-16 05:15:59
【问题描述】:
嘿,我正在尝试创建一个打印出前 100 个素数的程序。这是我的代码,但它不会打印出前一百个,而是从 2 到 100 的素数。我在这里做错了什么,使它只打印出那些蚂蚁而不是前一百个?
import java.io.*;
import java.util.*;
import java.lang.*;
import java.text.*;
public class Prime {
public static void main(String[] args) {
int maxCount = 100;
int[] values = new int[maxCount];
int temp = 3;
boolean prime = true;
for (int j = 1; j < maxCount; ++j) {
values[j] = j + 1;
if (values[j] == 2) {
System.out.println(values[j]);
}
}
for (int j = 2; j < maxCount; ++j) {
if (values[j] % 2 == 0)
prime = false;
else {
boolean prime2 = true;
double test = Math.sqrt(values[j]);
int divisor = 3;
while (prime2 && (divisor <= test)) {
if (values[j] % divisor == 0) {
prime2 = false;
} else divisor += 2;
}
if (prime2)
System.out.println(values[j]);
}
}
}
}
【问题讨论】:
-
您好,欢迎来到 Stack Overflow。请使用正确的缩进格式化您的代码。大多数人不想花精力查看格式错误的代码。对于编译器来说可能都是一样的,但对于人类来说却不是。如果你不够关心,我们为什么要关心?
-
当前输出是多少?
-
2 3 5 711 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
-
我请求不要相信不能被2和3整除的数是质数。以 119 为例,它不能被 2 和 3 整除,但可以被 7 和 13 整除。
-
查看这个问题,它识别值是否为素数:stackoverflow.com/questions/20798391/java-isprime-function