题库练习 数的分解 给出一个正整数a,要求分解成若干个正整数的乘积,即a=a1×a2×a3×...×an,并且1<a1≤a2≤a3≤...≤an,问这样分解的种类有多少。注意到a=a也是一种分解。例如,8可以分解成8=2*2*2,8=2*4,8=8总共3种。 python代码如下,完善划线处的代码:def fun(x, y=2)

A60436 | 数的分解 给出一个正整数a,要求分解成若干个正整数的乘积,即a=a1×a2×a3×...×an,并且1<a1≤a2≤a3≤...≤an,问这样分解的种类有多少。注意到a=a也是一种分解。例如,8可以分解成8=2*2*2,8=2*4,8=8总共3种。 python代码如下,完善划线处的代码:def fun(x, y=2)

来源2024年-编程题
时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

数的分解

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

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

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

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
C++ 编辑器
输入
输出