<1>问题:指定一个数字n,求解1-n这n个数字的最小公倍数
<2>代码:
package Java;
import java.math.BigInteger;
import java.util.Scanner;
public class gbs //指定一个数字n,求解出1,2,3,...n这n个数字的最小公倍数
{
/*
* 求解m和n的最小公倍数
*/
public static BigInteger gongBeishu(BigInteger m,BigInteger n)
{
return (m.multiply(n)).divide(m.gcd(n)); // (m*n)/(m和n的最大公约数),即m和n的最小公倍数
}
/*
* 递归求解1到n的最小公倍数
*/
public static BigInteger gongBeishuSubN(BigInteger n)
{
if(n.equals(new BigInteger("2")))
return new BigInteger("2");
return gongBeishu(gongBeishuSubN(n.subtract(BigInteger.ONE)),n);
}
/*
* 主方法
*/
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
int m;
while((m = cin.nextInt()) >= 2)
System.out.println(gongBeishuSubN(new BigInteger(new Integer(m).toString())) + "\n");
}
}
<3>运行结果截图: