一、题目:
蒜头君对一个数的因数个数产生了兴趣,他想知道在1~n的范围内,因数个数最多的数是多少。如果有多个这样的数,他想知道最小的那个。
输入格式 | 第一行一个整数T,表示数据的组数 接下来T行,每行一个正整数n 1<=T<=100,1<=N<=10^16 |
输出格式 | 一共输出T行,每行1个正整数表示最多因数个数的数 |
I
Input:
3
10
100
1000
Output:
6
60
840
二、分析
这个数的范围在10^16,显然线性找一遍是不能承受的。
解决的一种方式是枚举法。我们知道一个数N可以表示成 ,其中pi为质数。他的因数个数为
。
如12 = 2^2 * 3…^1,那么他的因数个数有(2 + 1)×(1+1)&