|
发表于 2019-4-10 10:04:38
|
显示全部楼层
质子列表:[2, 2, 5, 19, 3, 3, 17, 2, 2, 7, 13, 11]
返回结果:232792560
用时:0.1092007s (实测:1000内基本时间不变,10000大概3.9s)
import time
# 获取num的质子列表
def get_primelist(num):
num_list = []
for i in range(2, num+1):
while num % i == 0:
num_list.append(i)
num = num//i
return num_list
# 判断范围内每个质子列表的值是不是已经存在,并且对数量进行比对,多则忽略少则补齐
def get_max(MAX_NUM):
final_list = []
result = 1
for i in range(MAX_NUM):
cur_num = get_primelist(MAX_NUM - i)
for each in cur_num:
x = final_list.count(each)
y = cur_num.count(each)
if x > y:
pass
else:
for z in range(y - x):
final_list.append(each)
cur_num.remove(each)
print(final_list)
for each in final_list:
result *= each
return result
print(get_max(100))
print(time.process_time())
|
|