public class Ex14_11 {
public static void main(String[] args){
long b = Long.MAX_VALUE;
BigInteger a = new BigInteger(Long.toString(b));
int count = 0;
BigInteger c = new BigInteger("5");
BigInteger d = new BigInteger("6");
BigInteger e = new BigInteger("0");
while( count < 10 ){
a.add(BigInteger.ONE);
if(a.remainder(d) == new BigInteger("0") || a.remainder(c) == new BigInteger("0")){
System.out.print(a);
count++;
}
}
}
} 我需要找到大于Long.MAX_VALUE的前十个数字。所有数字应该能够精确地划分5或6。
答案 0 :(得分:2)
a.remainder(d) == new BigInteger("0")
您无法使用==
来比较BigInteger
。使用a.remainder(d).equals(new BigInteger("0"))
(类似地进行第二次比较)。请注意,Java语言中的a == new Foo(...)
总是为false。
此外,你必须写
a = a.add(BigInteger.ONE);
...因为你现在正在写的是
a + 1;
......实际上并没有对a
做任何事情。