如何在Java中检查100位整数是否为质数?

时间:2019-01-20 19:32:52

标签: java primes

我有一个由100个数字组成的整数,我想检查数字是否为质数。我应该怎么检查?

我尝试使用长整数,但是您知道这是不可能的。因此,还有其他解决方法。如果是,那么请向我提供示例代码。

当我输入任何100位整数时,我期望得到的输出仅为primenot prime

1 个答案:

答案 0 :(得分:2)

您已经知道我们不能通过使用长整数来完成此任务。必修课必须使用BigInteger类的概念。它有一个名为isProbablePrime的方法来确定数字是否为素数。

您可以尝试以下代码:

public class MyCode {
    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        String n = scanner.nextLine();
        scanner.close();

        BigInteger b = new BigInteger(n);
        Boolean b1,b2,b3;
        b1 = b.isProbablePrime(-1);
        b2 = b.isProbablePrime(0);
        b3 = b.isProbablePrime(1);

        if(b1 == true && b2 == true && b3 == true){
            System.out.println("prime");
        }
        else{
            System.out.println("not prime");
        }
    }
}

要获取有关BigInteger类的更多信息,请访问:https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#isProbablePrime%28int%29