编程题

数的分解

给出一个正整数 a,要求分解成若干个正整数的乘积,即 a=a1×a2×a3×... ×an,并且 1<a1≤a2≤a3≤...≤an,问这样分解的种类有多少。注意到 a=a 也是一种分解。

例如,8 可以分解成 8=2*2*2,8=2*4,8=8 总共 3 种。

代码如下,完善划线处的代码:

def fun(x, y=2):

    if x == 1:

        global ans

       

    for i in range(y, x+1):

        if :

            fun(x//i,i)

lst = [2, 8, 9, 20] #测试数据

for i in lst:

    ans = 0

   

    print(ans)

程序运行结果如下:

1

3

2

4

查看答案
赣ICP备20007335号-2