java - 如何在Java中检查100位整数是否为素数?
问题描述
我有一个由 100 位数字组成的整数,我想检查该数字是否为素数。我该怎么检查?
我试过使用长整数,但你知道这是不可能的。那么,有没有其他方法可以解决。如果是,那么请为我提供示例代码。
我希望仅在输入任何 100 位整数时才能获得prime
输出not prime
。
解决方案
如您所知,我们无法使用长整数来完成此任务。必须使用 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
推荐阅读
- python - 在 Python/Pandas 中将 dtype 'object' 的所有列转换为 'float'
- javascript - 使用 array.reduce 计算数组中的匹配项
- java - 尝试调用显示该方法并返回输入值的方法
- android - 无法使用 socket.io 从 Android 客户端连接到 node.js 服务器
- python - 我在浏览器中看不到我的 elasticbeanstalk 应用程序
- javascript - 在 Java 脚本中访问解析的 JSON 响应中的数组
- huawei-mobile-services - Android Studio 无法下载 com.huawei.hms:push:4.0.2.300
- elasticsearch - Elasticsearch 7.3.0, Rejecting mapping update to [] as the final mapping would have more than 1 type: [1, 2]
- python - 如何查找哪些列具有 NAN 值?(70+ 列)
- django-rest-framework - has_object_permission 未从 put 或 patch 请求中调用