求一个数的因数和的方法

51次

问题描述:

求一个数的因数和的方法求高手给解答

推荐答案

2023-12-30 19:51:05

首先,要问你短时间是多长时间,以下是我思考的过程:

1、看到这个问题,我首先想到的就是缩小这个数量级,目前能够想到的就是开方的方法缩小数量级到10的8次方,缩小到这个数量级的想法就是打印10的8次方以下的质数表,而打印这个质数表的复杂度是o(n),也就是要一亿次。

2、有了质数表,那么就可以求出这个质因数的分解式,这个复杂度主要取决于质数表的大小,相对于一亿来说的话应该不大,质因数的个数不超过64个,因为N不大于2的64次方。

3、然后就是根据质因数的分解式,求约数,这个过程的复杂度和约数的个数有关,没仔细算过,大概估计每个质因子都不同的话,应该是16个质因子,所以约数个数应该少于2的16次方个,这样的话,其实复杂度也不算高,就是算法有点复杂,没法跟一亿比综上所述的话,复杂度最高的就是打印素数表,但是素数表只需要打印一次,如果可以打印一次素数表以后,再去求约数的话,那么就有可能达到你的要求,当然,还要看你是什么方式,还有限制是时间是多长。以上是我的一点想法,希望对你有帮助,好长时间不做acm了。

(c)2008-2025 自学教育网 All Rights Reserved 汕头市灵创科技有限公司
粤ICP备2024240640号-6