思路分析:
长宽高,三重循环,枚举暴力.
两个知识点:一个是约数,另一个是集合。
1、判断约数算法: n%i==0
约数指的是被整除后没有余数的数。
举个栗子:3%1 == 0 ; 3%3 ==0 , 1和3就是3的约数。
2、创建集合容器方法:docker=set()
选用集合作为容器存放数据,是因为集合的数据不会重复。相同的数据不会重复添加。
import time
start = time.time()
n=2021041820210418 #货物数量
cnt=0 #统计值赋初始值0
docker=set() #创建集合属性的容器
for i in range(1,int(n**0.5)+1): #循环遍历,筛选n的约数(对n开根号的写法是为了加快速度)
if n % i == 0: #如果可被整除,判断为约数
docker.add(i) #添加约数
# print(docker,end=" ")
docker.add(n//i)
# print()
# print(docker)
for i in docker: #三重循环遍历容器(三重循环快到运行5s出结果)
for j in docker:
for k in docker:
if i*j*k==n: #满足条件,方案数+1
cnt+=1
print(cnt) #输出结果:2430
end = time.time()
print(end - start)