我想用biginteger值执行此操作:
while (Math.pow(A, n) <= factorial(B)) {
if (factorial(B)%Math.pow(A, n) == 0) {
powerA.add(n);
}
n++;
}
我已经用biginteger做了一个阶乘函数,但是我不知道如何使测试条件为“if”。
但我有:
BigInteger bi = BigInteger.valueOf(A).pow(n);
while (factorial(B).compareTo(bi) == 1) {
if (factorial(B).mod(bi) == 0) {
powerA.add(n);
}
n++;
}
1条答案
按热度按时间8ulbf1ek1#
java
BigInteger
是一个类,以同样的方式String
或者任何用户定义的对象都是类,所以==
会比较身份,这不是你想要的。你需要.equals
.值得注意的是
BigInteger
方法不会改变现有值,而是返回一个新值。所以要添加到powerA
,你想做什么