|
发表于 2018-9-11 13:36:57
|
显示全部楼层
本帖最后由 塔利班 于 2018-9-12 10:37 编辑
感觉找去因数的方法很蠢,回头再写- -
- def check(x):
- p=sorted([x for x in set(map(int,str(x))) if x])
- q=p[:]
- l=len(p)
- for i in range(l):
- for j in range(i+1,l):
- if q[j]%q[i]==0:
- try:
- p.remove(q[i])
- except:
- pass
- for each in p:
- if x%each:
- return False
- return True
- def fib():
- a,b=8,13
- while True:
- a,b=b,a+b
- if check(a):
- yield a
- a=fib()
- for i in range(10):
- print(next(a))
复制代码
这个没筛,有时候感觉处理了也没提升运行速度,应该有更好的算法和内置吧
- from functools import reduce
- from math import gcd
- a,b,c=8,13,0
- while c<10:
- a,b=b,a+b
- if not a%reduce(lambda x,y:x*y//gcd(x,y),[x for x in set(map(int,str(a))) if x],1):
- c+=1
- print(a)
复制代码 |
评分
-
查看全部评分
|