Java : Not sure if correct use of BigInteger

标签 java math project biginteger

这个程序的目的是计算 n 以下素数的总和 x 数量,但我的代码似乎不起作用,它编译并且没有错误。当我运行它时,控制台只是空白

public static void main(String[] args) {

    Prime prime = new Prime();
    BigInteger answer = BigInteger.valueOf(0);
    for (int i = 2; i < 2000000; i++) {
        if (prime.isPrime(i)) {
            answer = answer.add(BigInteger.valueOf(i));

        }
    }

    System.out.println(answer);
}

isPrime方法

  boolean isPrime(int n) {
    for(int i = 2; i < n ; i++) {
        if(n % i == 0) {
            return false;
        }
    }
    return true;
}

最佳答案

你只是等待的时间不够长。

尝试使用i < 200你会看到答案 4227打印速度相当快。

您正在检查2,000,000素数的数字。您的isPrime方法是O(n)所以你正在做大约 2,000,000 * 1,000,000计算。你自己解决吧。

关于Java : Not sure if correct use of BigInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45862054/

相关文章:

c++ - Windows时间戳(C++)

web-services - 修复 SoapUI 中的 "Missing SOAP Operations in Project"错误

java - 配置为目标的 PN532 已由其发起者发布

Node.js 中带有相对路径的 java 命令

c++ - 在 C++ 中通过迭代求平方根

linux - 如何在 Linux 控制台中进行划分?

error-handling - 当您编写代码时,您是主动还是被动地处理错误?

visual-studio-2008 - 如何将 QtCreator 项目转换为 Visual Studio 项目

java - 在 Java 中使用递归的字符串排列

java - 在 spring boot security 中获取客户端 ip 地址