首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使素性检验接受大数

如何使素性检验接受大数
EN

Stack Overflow用户
提问于 2019-10-23 02:15:27
回答 1查看 27关注 0票数 0

我有一个质数测试代码,可以接受最多10位的整数,但我想扩展一下,这样代码就可以接受超过200位的数字。我应该在代码中切换什么?

代码语言:javascript
复制
import java.util.*; 
import java.math.*; 

class CheckPrimeTest { 

    static boolean checkPrime(long n) 
    { 
        // Corner case 
        if (n <= 1) return false; 

        // Check from 2 to n-1 
        for (int i = 2; i < n; i++) 
            if (n % i == 0) 
                return false; 

        return true; 
    } 

    // Driver Program  
    public static void main(String args[]) 

                         throws java.lang.Exception 
    { 
 Scanner input = new Scanner(System.in);
  System.out.print("Enter an integer: ");
        long n = input.nextInt();  

       System.out.println(checkPrime(n)); 

    } 
} 
EN

回答 1

Stack Overflow用户

发布于 2019-10-23 02:25:49

如果你有这么大的数字,你不能使用ints和longs,你将不得不使用BigInteger,它已经为你定义了一个isProbablePrime方法:

代码语言:javascript
复制
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    BigInteger integer = new BigInteger(scanner.nextLine());
    System.out.println(integer.isProbablePrime(1));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58510153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档