java 大数(hdu4002)

来源:互联网 发布:淘宝抽检一般发到哪里 编辑:程序博客网 时间:2024/06/06 06:43
/*f(1)=2f(2)=2*3f(3)=2*3*5f(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]);        }    }}

0 0
原创粉丝点击