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()); } } }