楼主,我用筛数法写了个函数,输入正整数x,得到不大于x的所有质数 有两种写法,我感觉第二种更高效也更严谨,请指点 谢谢 #Eratoshenes埃拉托色尼筛法求质数 def EratoPrime(x):pl=[]for i in range(2,x+1):pl.append(i)i=0while i+1<len(pl):for ii in pl:if ii!=pl[i] and ii%pl[i]==0:pl.remove(ii)i+=1return(pl) def EratoPrime(x):pl=[]for i in range(2,x+1):pl.append(i)i=0while i+1<len(pl):ml=pl[i+1:]for ii in range(len(ml)):if ml[ii]%pl[i]==0:pl.remove(ml[ii])i+=1return(pl) 第二种方法应该效率更高,也更严峻