-2
您能否看看我在Python中實現eratosthenes篩選並告訴我如何改進/優化它?我在Python中使用eratosthenes實現的篩網
我是一名編程初學者,所以我沒有任何想法如何優化它,如果您檢查一下並告訴我哪些可以改進,我將非常感激。
# -*- coding: utf-8 -*-
"""
Created on Fri Sep 27 19:57:14 2013
@author: stefan
"""
def sqrt_int(n):
n = n**0.5
if n == int(n):
return True
else:
return False
def cbrt_int(n):
n = n**(1.0/3)
if n == int(n):
return True
else:
return False
def sieve(limit):
first_primes = [2,3,5,7]
primes = [x for x in range (2,limit+1)]
for y in first_primes:
primes = filter(lambda x: x % y != 0, primes)
primes = filter(lambda x: not sqrt_int(x), primes)
primes = filter(lambda x: not cbrt_int(x), primes)
if limit > 10:
primes = first_primes + primes
else:
primes = filter(lambda x: x <= limit, first_primes)
return primes
改進現有代碼的請求可能會在http://codereview.stackexchange.com上得到更好的答案 –