java中怎么求大整数的因子
时间: 2023-06-06 08:07:26 浏览: 167
可以使用Java中的BigInteger类来求大整数的因子。可以使用BigInteger的gcd()方法来计算最大公约数,然后再使用BigInteger的divide()方法来依次计算出各个因子。以下是一个例子:
```java
import java.math.BigInteger;
import java.util.ArrayList;
public class FactorizationExample {
public static void main(String[] args) {
BigInteger num = new BigInteger("12345678901234567890");
ArrayList<BigInteger> factors = new ArrayList<BigInteger>();
BigInteger i = BigInteger.valueOf(2);
while (i.compareTo(num.divide(i)) <= 0) {
if (num.mod(i).equals(BigInteger.ZERO)) {
factors.add(i);
num = num.divide(i);
} else {
i = i.add(BigInteger.ONE);
}
}
if (!num.equals(BigInteger.ONE)) {
factors.add(num);
}
System.out.println("Factors: " + factors);
}
}
```
在上面的例子中,我们使用循环去除所有的因子。具体来说,我们从2开始,逐个遍历到num的平方根,如果num可以整除i,则i是一个因子,我们把i加入因子列表中,并将num除以i得到新的num。如果num不能整除i,则i加1继续遍历。最后,如果num不等于1,则将num也加入因子列表中。
阅读全文