2043: 最小公倍数
时间限制: 1 Sec 内存限制: 64 MB提交: 11 解决: 9
您该题的状态:已完成
[提交][状态][讨论版]
题目描述
为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。
但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。
事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。
我们希望寻找到能除尽1至n的的每个数字的最小整数m.
输入
多组测试数据(少于500组)。 每行只有一个数n(1<=n<=100).
输出
输出相应的m。
样例输入
2
3
4
样例输出
2
6
12
/*求多个数的最小公倍数:
先求出前两个数a1和a2的最小公倍数b1,
再求第三个数a3与b1的最小公倍数b2,
再求a4与b2的最小公倍数b3,
……
最后求出an与b(n-2)的最小公倍数b(n-1)
b(n-1)即为所求
*/
import java.util.*;
import java.math.*;
public class Main
{
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
BigInteger[] a=new BigInteger[105];
a[1]=BigInteger.ONE;
for(int i=2;i<=100;i++)//预处理
{
a[i]=a[i-1].multiply(BigInteger.valueOf(i)).divide(a[i-1].gcd(BigInteger.valueOf(i)));
}
while(cin.hasNext())
{
int n=cin.nextInt();
System.out.println(a[n].toString());
}
}
}