因数分解

 

 

 

 

如 对20分解因数,从20,19,18,17...开始试 dfs(20,19),dfs(20,18)。。。

dfs(20,20)=dfs(20,19)+dfs(1,10)

由于dfs(a,b),a<b时 a%b=a ,仍相当于dfs(a,a)

dfs(1,10)=dfs(1,1)  对1因数分解 只有一种

*(感觉理解的还是比较浅显

 1 def dfs(a, m):
 2     if a == 1:
 3         return 1
 4     if m == 1:
 5         return 0
 6     if a % m == 0:
 7         return dfs(a,m-1) + dfs(a / m,m);
 8     return dfs(a,m-1)
 9 a = int(input())
10 print(dfs(a, a))

 

posted on 2021-12-29 13:48  衔白棋子的黑猫  阅读(149)  评论(0)    收藏  举报

导航