首页 > 解决方案 > 如何在Java中检查100位整数是否为素数?

问题描述

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

我试过使用长整数,但你知道这是不可能的。那么,有没有其他方法可以解决。如果是,那么请为我提供示例代码。

我希望仅在输入任何 100 位整数时才能获得prime输出not prime

标签: javaprimes

解决方案


如您所知,我们无法使用长整数来完成此任务。必须使用 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


推荐阅读