/*
f(1)=2
f(2)=2*3
f(3)=2*3*5
f(4)=2*3*5*7
求小于N 的最大f(x)的值
利用java写大数
*/
public class Main{
static String s[] = {
"2", "3", "5", "7", "11", "13", "17", "19", "23", "29",
"31", "37", "41", "43", "47", "53", "59", "61", "67", "71",
"73", "79", "83", "89", "97", "101", "103", "107", "109", "113",
"127", "131", "137", "139", "149", "151", "157", "163", "167", "173",
"179", "181", "191", "193", "197", "199", "211", "223", "227", "229",
"233", "239", "241", "251", "257", "263", "269", "271", "277", "281",
"283", "293", "307", "311", "313", "317", "331", "337", "347", "349",
"353", "359", "367", "373", "379", "383", "389", "397", "401", "409",
"419", "421", "431", "433", "439", "443", "449", "457", "461", "463",
"467", "479", "487", "491", "499", "503", "509", "521", "523", "541",
"547"
};
static BigInteger[] b=new BigInteger[102];
int sn = 100;
static void init()
{
b[0]=BigInteger.ONE;
for(int i=1;i<=100;i++)
{
b[i]=b[i-1].multiply(new BigInteger(s[i-1]));
}
}
public static void main(String[] args) {
int t;
Scanner sc=new Scanner(System.in);
t=sc.nextInt();
init();
while(t>0)
{
t--;
BigInteger n=sc.nextBigInteger();
int i;
for(i=0;i<100;i++)
{
if(n.compareTo(b[i])<0)
break;
}
System.out.println(b[i-1]);
}
}
}
java 大数(hdu4002)
最新推荐文章于 2021-02-28 08:26:47 发布