import datetime
start = datetime.datetime.now()
n=100000
primenumber=[2]for i inrange(3,n,2):
flag =False
k = i**0.5for j in primenumber:if j > k:
flag =Truebreakif i % j ==0:# 不是质数
flage =Falsebreakif flag :
primenumber.append(i)
delta =(datetime.datetime.now()- start).total_seconds()print(count)print(delta)
孪生素数解法
import datetime
start = datetime.datetime.now()
l1=[]
l2 =[2,3,5]
num =5
add =2
count =3
n=100000while num < n:##3 +2 5 +2 7 +4 11 +2 13 +4 17 19if num%5!=0:
l1.append(num)
num = num+ add
add =4if add ==2else2for i in l1:
flag =False
k=int(i**0.5)for j in l2:if j > k:
flag=Truebreakif i%j ==0:
flag=Falsebreakif flag :
l2.append(i)
count +=1
delta =(datetime.datetime.now()- start).total_seconds()print(count)print(delta)
杨辉三角
杨辉三角 单行覆盖
## 1 先创建一个大列表 [1]*n
l3 =[1]*(6)for i inrange(6):
old =1for j inrange(i//2):
val = old+l3[j+1]
old = l3[j+1]
l3[j+1]= val
l3 [i-j-1]=val
print(l3)
大列表套小列表
triangle=[[1],[1,1]]for i inrange(1,6):
pre = triangle[i]
cur=[1]*(i+2)for j inrange(i//2+1):
val=(pre[j]+pre[j+1])
cur[j+1]=val
cur[-j-2]= val
triangle.append(cur)print(triangle)