|
发表于 2017-8-11 12:31:32
|
显示全部楼层
已优化
本帖最后由 凤凰0620 于 2017-8-14 16:47 编辑
- import time
- start =time.clock()
- def get_hanmings(a=[]):
- start = 0
- c=[]
- b=[1,2,3,4,5]
- for i in b[start:]:
- for j in a[start:]:
- c.append(i*j)
- start += 1
- return c
- a=[1,2,3,4,5]
- pre_result = [1,2,3,4,5]
- while pre_result[-1]<=10**135:
- b = get_hanmings(a)
- a = list(set(b)-set(a))
- for i in a:
- pre_result.append(i)
- result=[]
- for i in pre_result:
- if i <= 10**100:
- result.append(i)
- print(len(result))
- end = time.clock()
- print('Running time: %s Seconds'%(end-start))
复制代码
最终版本,经过调整,while的范围在135左右,既能保证结果的完整,又能尽量节省时间
最后结果1697191个
在代码里加入了计时之后运行,平均运行成绩在12秒多
后记:我研究了一下规律,发现用差集进行迭代可以避免重复,结果实验了一下竟然超快的!!!!!!!!激动人心
|
-
运行结果
评分
-
查看全部评分
|