题意
用g(x)表示x的约数个数,定义:若x满足g(x)>g(i){i|0< i< x},则x被称为反素数。求不超过n的最大反素数。
数据范围
$$1\leq n\leq2000000000$$
题解
首先明白:一个数约数个数=所有素因子的指数+1的乘积 。
然后可以通过计算得:一个2000000000以内的数字不会有超过12个素因子,并且小素因子多一定比大素因子多要优。那么预处理出前12个素数,剩下的直接暴搜即可。
代码
|
|

用g(x)表示x的约数个数,定义:若x满足g(x)>g(i){i|0< i< x},则x被称为反素数。求不超过n的最大反素数。
$$1\leq n\leq2000000000$$
首先明白:一个数约数个数=所有素因子的指数+1的乘积 。
然后可以通过计算得:一个2000000000以内的数字不会有超过12个素因子,并且小素因子多一定比大素因子多要优。那么预处理出前12个素数,剩下的直接暴搜即可。
|
|
