相关知识点
程序有时需要处理大整数,java.math包中的BigInteger类提供任意精度的整数运算。
一、实验目的及要求
实验目的:让学生掌握BigInteger类的常用方法
实验要求:编写一个Java应用程序,计算两个大整数的和、差、积和商,并计算出一个大整数的因子个数(因子中不包含1和大整数本身)
二、代码
1.引入库
代码如下(示例):
import java.math.*;
2.实现源码
代码如下(示例):
import java.math.*;
public class HandleBigInteger {
public static void main(String[] args) {
BigInteger n1 = new BigInteger("987654321987654321987654321"),
n2 = new BigInteger("123456789123456789123456789"),
result = null;
result = n1.add(n2); //n1和n2做加法运算
System.out.println("和:" + result.toString());
result = n1.subtract(n2); //n1和n2做减法运算
System.out.println("差:" + result.toString());
result = n1.multiply(n2); //n1和n2做乘法运算
System.out.println("积:" + result.toString());
result = n1.divide(n2); //n1和n2做除法运算
System.out.println("商:" + result.toString());
BigInteger m = new BigInteger("17637"),
COUNT = new BigInteger("0"),
ONE = new BigInteger("1"),
TWO = new BigInteger("2");
System.out.println(m.toString() + "的因子有:");
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.print(" " + i.toString());
}
}
System.out.println("");
System.out.println(m.toString() + "一共有" + COUNT.toString() + "个因子");
}
}
总结
只要计算机的内存足够大,就可以处理任意大的整数。BigInteger类的toString()方法返回当前大整数对象十进制的字符串表示。