hdu 4002 Find the maximum 2011大連ネット試合1002 Find the maximum
8396 ワード
~~
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int T, i,j, nlen;
int num[] = { 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 };
BigInteger numa, temp, res;
nlen = num.length;
String str;
while (cin.hasNext()) {
T = cin.nextInt();
for(j=0;j<T;j++) {
str=cin.next();
numa = new BigInteger(str);
for (i = 0, res = BigInteger.ONE; i < nlen; i++) {
temp = BigInteger.valueOf(num[i]);
res = res.multiply(temp);
if (res.compareTo(numa) >= 0) {
if (res.compareTo(numa) > 0) {
res = res.divide(temp);
}
break;
}
}
System.out.println(res);
}
}
}
}