diff --git a/12lanqiao/test4.cpp b/12lanqiao/test4.cpp new file mode 100644 index 0000000..84f3efe --- /dev/null +++ b/12lanqiao/test4.cpp @@ -0,0 +1,32 @@ +// lanqiao 1463 货物摆放 +#include +using namespace std; +#define int long long +/* +搜索解法:由于n过大,严重超时,无法跑出结果 +枚举解法:由于只有三个位置,所以直接枚举三个位置上的数字 +*/ +signed main(){ + int n = 2021041820210418; + vector p; // 找到n的所有因子并存储起来,进而针对枚举范围进行优化 + for(int i = 1; i <= sqrt(n); i++){ + if(n % i == 0){ + p.push_back(i); + if(i != n/i) p.push_back(n/i); + } + } + int ans = 0; + // 枚举因子,计算方案数量 + for(int i = 0; i < p.size(); i++){ + for(int j = 0; j < p.size(); j++){ + for(int k = 0; k < p.size(); k++){ + if(p[i] * p[j] * p[k] == n) ans++; + } + } + } + cout << ans << endl; + return 0; +} +/* +output -> 2430 +*/