# 求100以内的素数
count = 0
for x in range(2,100):
for i in range(2,x):
if x % i ==0: #说明是合数
break
else:#说明是质数
print(x , end = ' ')
count +=1
print(count) #效率极低
求100000以内的素数的个数
# 求100000以内的素数
import datetime
start = datetime.datetime.now()
count = 0
for x in range(2,100000):
for i in range(2,int(x ** 0.5)+1):
if x % i ==0: #说明是合数
break
else:#说明是质数
#print(x)
count +=1
delta = (datetime.datetime.now() - start).total_seconds()
print(count,delta)#统计的时间为墙上的时间即钟表的时间
# 求100000以内的素数
import datetime
start = datetime.datetime.now()
count = 1
#print(2)
for x in range(3,100000,2):
for i in range(3,int(x ** 0.5)+1,2):
if x % i ==0: #说明是合数
break
else:#说明是质数
#print(x)
count +=1
delta = (datetime.datetime.now() - start).total_seconds()
print(count,delta)#统计的时间为墙上的时间即钟表的时间
# 求100000以内的素数
import datetime
start = datetime.datetime.now()
count = 1
#print(2)
for x in range(3,100000,2):
if x >10 and x%5 == 0:continue
for i in range(3,int(x ** 0.5)+1,2):
if x % i ==0: #说明是合数
break
else:#说明是质数
#print(x)
count +=1
delta = (datetime.datetime.now() - start).total_seconds()
print(count,delta)#统计的时间为墙上的时间即钟表的时间
使用列表求100000以内的素数
import datetime
start = datetime.datetime.now()
count = 1
#print(2)
primenumbers = [2]#[2]
for x in range(3,100000,2):
flag = False #不是素数
edge = int(x ** 0.5)
for i in primenumbers:#range(3,int(x ** 0.5)+1,2):
if i > edge:#int(x ** 0.5): #是质数
flag = True
break
if x % i ==0: #说明是合数
break
if flag:#说明是质数
#print(x,end=',')
count +=1
primenumbers.append(x)
delta = (datetime.datetime.now() - start).total_seconds()
print(count,delta)#统计的时间为墙上的时间即钟表的时间
# 求100000以内的素数
import datetime
start = datetime.datetime.now()
count = 2
#print(2)
primenumbers = [3]#[2]
for x in range(5,100000,2):
flag = False #不是素数
edge = int(x ** 0.5)
for i in primenumbers:#range(3,int(x ** 0.5)+1,2):
if i > edge:#int(x ** 0.5): #是质数
flag = True
break
if x % i ==0: #说明是合数
break
if flag:#说明是质数
#print(x)
count +=1
primenumbers.append(x)
delta = (datetime.datetime.now() - start).total_seconds()
print(count,delta)#统计的时间为墙上的时间即钟表的时间
求100以内的素数(效率极低)# 求100以内的素数count = 0for x in range(2,100): for i in range(2,x): if x % i ==0: #说明是合数 break else:#说明是质数 print(x , end = ' ') count +=1pri...