求1-N中约数个数最大的数(相同取最小)。
一开始我还想去推导来着,可这题压根就是一道搜索。。。
当然依旧与数论沾边。
根据约数个数定理可得,N的约数个数为它质因数分解后指数各自加一的乘积。
So我们可以得到几个反素数的性质:
若素数M出现在N的质因数分解中,则其他素数K<M也都有出现在N的质因数分解中
若素数M在N的质因数分解中的指数为A,则其他素数K<M在N的质因数分解中的指数B>=A
所以就可以贪心+搜索了(素数从小到大依次加入)。
【Code】