lanqiao 1463 货物摆放
This commit is contained in:
32
12lanqiao/test4.cpp
Normal file
32
12lanqiao/test4.cpp
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
// lanqiao 1463 货物摆放
|
||||||
|
#include<bits/stdc++.h>
|
||||||
|
using namespace std;
|
||||||
|
#define int long long
|
||||||
|
/*
|
||||||
|
搜索解法:由于n过大,严重超时,无法跑出结果
|
||||||
|
枚举解法:由于只有三个位置,所以直接枚举三个位置上的数字
|
||||||
|
*/
|
||||||
|
signed main(){
|
||||||
|
int n = 2021041820210418;
|
||||||
|
vector<int> 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
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user