0

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

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)); 

    } 
} 
4

1 回答 1

1

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

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    BigInteger integer = new BigInteger(scanner.nextLine());
    System.out.println(integer.isProbablePrime(1));
}
于 2019-10-22T18:25:48.860 回答