我有一个由100个数字组成的整数,我想检查数字是否为质数。我应该怎么检查?
我尝试使用长整数,但是您知道这是不可能的。因此,还有其他解决方法。如果是,那么请向我提供示例代码。
当我输入任何100位整数时,我期望得到的输出仅为prime
和not prime
。
答案 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