- """
- Eratosthenes篩選求質數
- """
- import math
- def createPrims(n):
- ps = [1]*n
- for v in range(2,int(math.sqrt(n))) :
- if ps[v] :
- for j in range(v*2,n) :
- if not j%v :
- ps[j]=0
- return [i for i in range(2,n) if ps[i]==1]
- def factor(n,prims):
- if prims[0] > int(math.sqrt(n)) :#當除數>n的立方
- return [prims[0]]
- else:
- return ([prims[0]]+factor(n//prims[0],prims) if not n%prims[0] else factor(n,prims[1:]))
- # n數需要質數n/2個質數進行因式分解
- for v in factor(100,createPrims(100//2)):
- print(str(v),end=',')
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。