我有一个质数测试代码,可以接受最多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));
}
} 发布于 2019-10-23 02:25:49
如果你有这么大的数字,你不能使用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));
}https://stackoverflow.com/questions/58510153
复制相似问题