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