码迷,mamicode.com
首页 > 其他好文 > 详细

因数个数上界的估计

时间:2020-01-30 10:10:46      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:上界   sqrt   平均值   改善   不等式   函数   实验   相同   play   

最近做了很多有关整数因数分解的题,每次开因数数组时总是纠结于其大小。而网上比较好的成果(我能找到的)是对于整数 \(n\),其因数个数 \(r(n)<\sqrt{n}\),当 \(n>1260\),所以我通过推导和实验(其实是估计不下去了)稍微改善了成果。


记号 我们记正整数 \(n\) 的素因子个数(包含重复的)为 \(s(n)\),因子个数为 \(r(n)\)

引理 \[s(n)\leq\log_2n,\forall n \in \mathbb{N*}\]

证明 不妨假定 \(n = \prod_{i=1}^m p_i^{k_i}\),其中 \(p_i\) 为互不相同的素数。我们有 \(p_i\geq 2\),则

\[\log_2 n=\log_2 \prod_{i=1}^m p_i^{k_i}\geq\log_2 \prod_{i=1}^m 2^{k_i}=\log_2 2^{\sum_{i=1}^m k_i}=\log_2 2^{s(n)}=s(n)\]

定理 \(r(n)\leq(\frac{\log_2n}{m}+1)^m\),其中 \(m\) 是一小于 \(\log_2n\) 的整数。

证明\(n\)\(m\) 个质因数,且每个质因数分别有 \(k_1,k_2,\cdots,k_m\) 个,有 \(\sum_{i=1}^m k_i = s(n)\leq\log_2n\)。则 \(r(n)=\prod_{i=1}^m (k_i+1)\),由几何-算术平均值不等式有

\[r(n)=\prod_{i=1}^m (k_i+1)\leq(\frac{\sum_{i=1}^m (k_i+1)}{m})^m=(\frac{s(n)}{m} + 1)^m\leq(\frac{\log_2n}{m} + 1)^m\]

\(f(x)=(\frac{a}{x}+1)^x\)\(\mathbb{R*}\) 上是增函数,所以 \(m\) 越小这个估计就越小。看起来 \(m\) 的上界似乎没什么用,但事实上,由于我们对 \(s(n)\) 的估计很不精确,所以 \(m\) 并不一定是 \(n\) 的不同素因子个数。实验表明,\(m\) 的增长十分缓慢(大约是 \(\log\sqrt{n}\) 级别),取 \(m=3\) 时在 \(10^8\) 以下已经没有超过这个估计的反例了。

本文仅是给出了一个关于上界的粗略估计,没有严格的证明,希望能对读者有所帮助。

因数个数上界的估计

标签:上界   sqrt   平均值   改善   不等式   函数   实验   相同   play   

原文地址:https://www.cnblogs.com/whx1003/p/12242043.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!