Prime计算公式直到9973才显示到100000之前的素数

时间:2015-08-01 07:03:57

标签: java arrays

long i = 0;
int primeNumberCounter = 1;
long upperLimit = 100000;
PrintWriter writer = resp.getWriter();
while (++i <= upperLimit) {
    long i1 = (long) Math.ceil(Math.sqrt(i));
    boolean isPrimeNumber = false;
    while (i1 > 1) {
        if ((i != i1) && (i % i1 == 0)) {
            isPrimeNumber = false;
            break;
        } else if (!isPrimeNumber) {
            isPrimeNumber = true;
        }
        --i1;
    }

    if (isPrimeNumber) {
        writer.write(String.valueOf(i));
        writer.write("\n");
        ++primeNumberCounter;
    }
}

我在谷歌应用引擎上部署了上面的代码。我的价值直到9973而不是99991,这必须是最后的素数。谢谢任何帮助赞赏

1 个答案:

答案 0 :(得分:1)

你应该致电

writer.close();

最后,在你的while循环之后刷新所有数据。或者,如果您仍在使用writer,请致电writer.flush()