因数分解

如 对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))
浙公网安备 33010602011771号