• 有关求任意一个正整数的n的因数的个数的求解思路


    已知条件:n=p1^a1xp2^a2xp3^a3........xpk^ak;求解n的因数的个数;

    求解的主要思想:递归

    设所有的因数的个数为U1;

    则U1会等于什么呢?

    不妨设求得p2^a2xp3^a3.......xpk^ak=U2;

    则我们可以这样考虑:

    U1包含3部分:1.只有p1的因素:共有a1种(无非是p1,p1*p1,...)

                             2.不包含p1: 共有U2种

                             3.包含p1,但不只是p1: 共有a1xU2种(对于U2中的每一种情况加乘有p1的项,就会构成新的一个因数)

    也许你会有疑问,假如有重复怎么办?答案是不可能的,因为如果重复的那个数是m,则m存在多种素因数分解式,显然矛盾。

    因此,我们可以得到一个递推式:U1=a1+U2+a1xU2=a1+(a1+1)U2;但是,有没有注意到,所有的因数都没有包含1,显然我们上面所包含的因素都大于1;

    所以设n的所有素因数的个数为C则C=U1+1;

                                               又递推可知:U2=a2+(a2+1)U3

                                                 ...............................................

                                            以上递推式可解得:U1=a1+a2x(a1+1)+a3x(a2+1)x(a1+1)+.......+akx(a[k-1]+1)x(a[k-2]+1)x....(a1+1)

                                           C=U1+1=a1+1+a2x(a1+1)+.....=(a1+1)x(a2+1)+........        

                                           发现了吧:最后C=(a1+1)x(a2+1)x(a3+1).........x(ak+1)

    以上就是借助递归思想进行求解的过程,可见递归还是很强大的。

              

    敢于面对难题,敢于面对自己。
  • 相关阅读:
    在UNITY中按钮的高亮用POINT灯实现,效果别具一番风味
    打包场景出错
    探讨 .NET 4 新增的 SortedSet 类
    error CS1010 CS8025 CS1012 CS1525 常见文档错误解决
    安卓机在按HOME键时,UNITY触发的APPLICATION_PAUSE事件
    有几个Pass,对象就会绘制几次
    华东师范大学2017年高等代数考研试题
    华东师范大学2017年数学分析考研试题
    无穷级数的收敛性
    南开大学2017年数学分析高等代数考研试题
  • 原文地址:https://www.cnblogs.com/cittysteven/p/8278114.html
Copyright © 2020-2023  润新知