找2-100之间的素数并输出。你会用什么算法来解决这个问题?
2 回答
已采纳
清波
TA贡献165条经验 获得超90个赞
import math def isprime(n): if not isinstance(n,int) or n<=1: return False for i in range(2,int(math.sqrt(n)+1)): if n % i ==0: return False return True result=[x for x in range(2,101) if isprime(x)]
解释, 还是建议先定义判断函数 ,命名为 pythonic 风格 isprime(), 然后用 列表推导式 生成结果吧, 或者将列表表达式包装为函数?
def prime_list(start,end): def isprime(n): if not isinstance(n,int) or n<=1: return False for i in range(2,int(math.sqrt(n)+1)): if n % i ==0: return False return True return [x for x in range(start,end+1) if isprime(x)] result = prime_list(2,100)
基本就这样吧
_潇潇暮雨
TA贡献646条经验 获得超225个赞
# coding: utf-8 def isPrime(number): for x in range(2,number/2): if(number % x == 0): return False return True a = [] for x in range(2,101): if(isPrime(x)): a.append(x) print a
添加回答
举报
0/150
提交
取消