题解
分解因数
1 条题解
-
0
#include <bits/stdc++.h> using namespace std; //返回数字k分解成由大于等于st的因数乘积的形式的分解方案数 int solve(int k, int st) { if(k == 1)//k为1表示分解结束,形成1种方案 return 1; int ct = 0; for(int i = st; i <= k; ++i) { if(k%i == 0) ct += solve(k/i, i);//分解方案增加:将k/i分解成因数最小为i的分解方案数。 } return ct; } int main() { int n, a; cin >> n; while(n--) { cin >> a; cout << solve(a, 2) << endl;//分解数字a,因数大于等于2 } return 0; }
- 1