深度搜索+剪枝. 代码:#include <iostream> using namespace std; int ans; void dfs(int n, int k) { if(n == 1) { ans++; return; } int i; for(i=2; i<=n; ++i) if(n%i==0 && i>=k) dfs(n/i,i); } int main(void) { int n; while(cin >> n) { ans = 0; dfs(n,1); cout << ans << endl; } return 0; }