反素数
数学领域术语
对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。
性质
性质一:一个反素数的质因子必然是从2开始连续的质数.
性质二:必然
算法实现
考虑直接暴力枚举以及的因数,时间复杂度约为。
还是考虑直接暴力枚举xx,但是我们可以通过优化枚举因数的时间复杂度来降低整个程序的时间复杂度,这种方法的时间复杂度约为。
100分(满分)思路:
什么是反素数?
反素数就是区间内约数个数最多的那个数。根据题目要求,如果有多个满足,选取最小的一个。
上文的引用部分摘自@stupid_one的博客园,有删改。
很显然题目要求的区间就是。那么我们怎么求反素数呢?
如果我们设为指数,为指数的话,那么如果一个数可以被分成如下形式。
那么的因数个数就是。
如果设严格递增,并且也算在内,则如果并且,那么显然这个数不可能是反素数,因为交换和会更好。 所以当递增时是递减的,这个数才可能是反素数。
所以我们可以据此搜索。
素数表可以筛一波,也可以这样:
因为前12个素数的积,所以最多用到12个素数,手动打素数表即可。
思路和代码分别来自@罗恺的博客以及@Goes的博客。
优化前的40 分代码(用时7000ms):
优化后的40分代码(用时6104ms ):
100分代码:
参考资料
最新修订时间:2023-10-17 20:11
目录
概述
性质
算法实现
参考资料