首页 > 代码库 > NYOJ--517--最小公倍数(大数打表)

NYOJ--517--最小公倍数(大数打表)

最小公倍数

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
 
描述
为什么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
  1 //打表
  2 import java.math.BigDecimal;
  3 import java.math.BigInteger;
  4 import java.util.Scanner;
  5 public class Main{
  6     
  7     public static void main(String args[]){
  8         Scanner cin = new Scanner(System.in);
  9         /*final int MAX = 105;
 10         int arr[] = new int[MAX];
 11         BigInteger res[] = new BigInteger[MAX];
 12         for(int i=1; i<MAX; ++i)arr[i] = i;
 13         for(int i=2; i<MAX; ++i){
 14             for(int j=i+1; j<MAX; ++j){
 15                 if(j%i == 0)
 16                     arr[j] /= arr[i];
 17             }
 18         }
 19         for(int i=1; i<MAX; ++i)res[i] = BigInteger.ONE;
 20         for(int i=2; i<MAX; ++i){
 21             for(int j=2; j<i; ++j){
 22                 res[i] = res[i].multiply(BigInteger.valueOf(arr[j]));
 23             }
 24         }
 25         for(int i=1; i<101; ++i){
 26             int n = i;
 27             System.out.println("\""+res[n+1] + "\",");
 28         }*/
 29         String s[] = {
 30                 "1",
 31                 "2",
 32                 "6",
 33                 "12",
 34                 "60",
 35                 "60",
 36                 "420",
 37                 "840",
 38                 "2520",
 39                 "2520",
 40                 "27720",
 41                 "27720",
 42                 "360360",
 43                 "360360",
 44                 "360360",
 45                 "720720",
 46                 "12252240",
 47                 "12252240",
 48                 "232792560",
 49                 "232792560",
 50                 "232792560",
 51                 "232792560",
 52                 "5354228880",
 53                 "5354228880",
 54                 "26771144400",
 55                 "26771144400",
 56                 "80313433200",
 57                 "80313433200",
 58                 "2329089562800",
 59                 "2329089562800",
 60                 "72201776446800",
 61                 "144403552893600",
 62                 "144403552893600",
 63                 "144403552893600",
 64                 "144403552893600",
 65                 "144403552893600",
 66                 "5342931457063200",
 67                 "5342931457063200",
 68                 "5342931457063200",
 69                 "5342931457063200",
 70                 "219060189739591200",
 71                 "219060189739591200",
 72                 "9419588158802421600",
 73                 "9419588158802421600",
 74                 "9419588158802421600",
 75                 "9419588158802421600",
 76                 "442720643463713815200",
 77                 "442720643463713815200",
 78                 "3099044504245996706400",
 79                 "3099044504245996706400",
 80                 "3099044504245996706400",
 81                 "3099044504245996706400",
 82                 "164249358725037825439200",
 83                 "164249358725037825439200",
 84                 "164249358725037825439200",
 85                 "164249358725037825439200",
 86                 "164249358725037825439200",
 87                 "164249358725037825439200",
 88                 "9690712164777231700912800",
 89                 "9690712164777231700912800",
 90                 "591133442051411133755680800",
 91                 "591133442051411133755680800",
 92                 "591133442051411133755680800",
 93                 "1182266884102822267511361600",
 94                 "1182266884102822267511361600",
 95                 "1182266884102822267511361600",
 96                 "79211881234889091923261227200",
 97                 "79211881234889091923261227200",
 98                 "79211881234889091923261227200",
 99                 "79211881234889091923261227200",
100                 "5624043567677125526551547131200",
101                 "5624043567677125526551547131200",
102                 "410555180440430163438262940577600",
103                 "410555180440430163438262940577600",
104                 "410555180440430163438262940577600",
105                 "410555180440430163438262940577600",
106                 "410555180440430163438262940577600",
107                 "410555180440430163438262940577600",
108                 "32433859254793982911622772305630400",
109                 "32433859254793982911622772305630400",
110                 "97301577764381948734868316916891200",
111                 "97301577764381948734868316916891200",
112                 "8076030954443701744994070304101969600",
113                 "8076030954443701744994070304101969600",
114                 "8076030954443701744994070304101969600",
115                 "8076030954443701744994070304101969600",
116                 "8076030954443701744994070304101969600",
117                 "8076030954443701744994070304101969600",
118                 "718766754945489455304472257065075294400",
119                 "718766754945489455304472257065075294400",
120                 "718766754945489455304472257065075294400",
121                 "718766754945489455304472257065075294400",
122                 "718766754945489455304472257065075294400",
123                 "718766754945489455304472257065075294400",
124                 "718766754945489455304472257065075294400",
125                 "718766754945489455304472257065075294400",
126                 "69720375229712477164533808935312303556800",
127                 "69720375229712477164533808935312303556800",
128                 "69720375229712477164533808935312303556800",
129                 "69720375229712477164533808935312303556800",
130         };
131         while(cin.hasNext()){
132             int n = cin.nextInt();
133             System.out.println(s[n-1]);
134         }
135     }
136 }

 

NYOJ--517--最小公倍数(大数打表)