有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java素数计算公式直到100000才显示素数,直到9973才显示素数

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) 个答案

  1. # 1 楼答案

    你应该打电话

    writer.close();
    

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