回 帖 发 新 帖 刷新版面

主题:请大家帮我看看。

题目是这样的:一个自然数N的正因子个数记为F(N),例如18的所有正因数为:1,2,3,6,9,18,所以F(18)=6。现在给出K,求所有满足F(N)的N中最小的数。

程序我已经编好了,在附件里。可运行时间很长,最多话了20秒,请大家帮我看看这是为什么。

回复列表 (共4个回复)

沙发

很明显是算法不对

板凳

???能运行呀!算法怎么有问题?

3 楼

算法效率太底了
用公式来解决:
M=X1^Y1*X2^Y2*X3^Y3*...*Xn^Yn  //把M分解质因数
F(M)=(Y1+1)*(Y2+1)*(Y3+1)*...(Yn+1)  //那么M的约数就有这么多

4 楼

谢谢,小学学的方法我居然给忘了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册