gpt4 book ai didi

java - 如何使素性测试接受大数

转载 作者:行者123 更新时间:2023-12-02 09:23:28 26 4
gpt4 key购买 nike

我有一个素性测试代码,可接受最多 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));

}
}

最佳答案

如果您有如此大的数字,则无法使用 intlong ,则必须使用 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));
}

关于java - 如何使素性测试接受大数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58510153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com