JAVA 中BigInteger相关问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 08:15:09
BigInteger n1=new BigInteger("98648546486123154");
BigInteger m=new BigInteger("77889988"),
COUNT=new BigInteger("0"),
ONE=new BigInteger("1"),
TWO=new BigInteger("2");
for(BigInteger i=TWO;i.compareTo(m)<0;i=i.add(ONE)){
if((n1.remainder(i).compareTo(BigInteger.ZERO))==0){
COUNT=COUNT.add(ONE);
System.out.println(m+"的因子: "+i);
}
}
System.out.println(m+"一共有"+COUNT+"个因子");
其中for(BigInteger i=TWO;i.compareTo(m)<0;i=i.add(ONE)) 这行的错误提示为: 局部变量 i 重复
不能调用基本类型 int 的 compareTo(BigInteger)
不能调用基本类型 int 的 add(BigInteger)

if((n1.remainder(i).compareTo(BigInteger.ZERO))==0)这行的错误提示是:类型 BigInteger 中的方法 remainder(BigInteger)对于参数(int)不适用
这些我都是超书上的 不知道问题再哪里 谁能帮忙改正过来 谢谢哈
java.math.*; 我引入了
还有就是 这章我就是学BigInteger 所以是要用的 你用的是什么编译的 我用的是eclipse.
问题依然存在。。。

77889988的因子: 2
77889988的因子: 3
77889988的因子: 6
77889988的因子: 1061
77889988的因子: 2122
77889988的因子: 3183
77889988的因子: 6366
77889988的因子: 309677
77889988的因子: 619354
77889988的因子: 929031
77889988的因子: 1858062

我运行过了。。上面是结果。。。。是没有错误的。。

如果你要是还有错误,我可以具体的帮你看下。。

百度HI。。。好的就这样,,祝你好运!!!

我编译了你的代码 没有问题啊 要引入 java.math包
就是输出速度有点慢 其他没问题
77889988还没有超过int的范围,for循环里可以直接用int
还是你一定要BigInteger