manthanein 发表于 2019-11-19 00:59:40

求正整数n的约数中不大于给定正整数k的有多少个,n的质因数分解已知

给定正整数及其因数分解标准形式\(\D n=\prod_{i=1}^m p_i^{a_i}\)。
求\(n\)的约数中所有不大于给定正整数\(k\)的约数的数量。
姑且记作\(F(n,k)\)吧。

lsr314 发表于 2019-11-19 09:55:22

取对数就变成线性不等式。

.·.·. 发表于 2019-11-19 18:01:23

递归化简吧
设数字是n,$p^t|n$而$p^{t+1}\not |n$
现在计算有多少个n中能被p整除而不大于k的约数个数
在算出这个数字之后,考察$\frac n{p^t}$与$\frac k{p^t}$,我们会发现,n中每一个不大于k且不能被p整除的约数都与$\frac n{p^t}$中不大于$\left[\frac k{p^t}\right]$的约数一一对应,由此我们可以将问题化简。

对于“n中能被p整除而不大于k的约数个数”这个问题

首先计算n/p跟k/p,如果某个能被p整除的约数$d\le k$,那么$\frac dp\le \frac kp$
于是问题可以进一步转化成,对整数$\frac np$,计算$\frac np$的约数中所有不大于给定正整数$\left[\frac kp\right]$的约数的数量。

然后就可以递归化简/动态规划了
页: [1]
查看完整版本: 求正整数n的约数中不大于给定正整数k的有多少个,n的质因数分解已知