求 100万内的所有素数
方法一:
for i in range(3,1000000,2): m = i ** 0.5 for j in range(3,i,2): if i %j == 0: break else:
print(i)
n = 1000000
for i in range(2,n):
for j in range(2,i):
if i % j == 0:
break
else:
print(i)
n = 1000 for i in range(3, n, 2): flag = False for j in range(3, i, 2): if i % j == 0: flag = True break if not flag: print(i)
使用时间函数计算效率:
import datetime # start = datetime.datetime.now() # count = 0 # for i in range(2,1000000): # for j in range(2,x): # if i % j == 0: # break # else: # count += 1 # delata = (datetime.datetime.now() - start).total_seconds() # # print(1,delata,count) print('-------------------') start = datetime.datetime.now() count = 0 for i in range(2,1000000): for j in range(2,int(i ** 0.5) + 1): if i % j == 0: break else: count += 1 delata = (datetime.datetime.now() - start).total_seconds() print(2,delata,count) print('-------------------') start = datetime.datetime.now() count = 1 for i in range(3,1000000,2): for j in range(2,int(i ** 0.5) + 1): if i % j == 0: break else: count +=1 delata = (datetime.datetime.now() - start).total_seconds() print(3,delata,count) print('----------------------------') start = datetime.datetime.now() count = 1 for i in range(3,1000000,2): for j in range(3,int(i ** 0.5) + 1,2): if i % j == 0: break else: count +=1 delata = (datetime.datetime.now() - start).total_seconds() print(4,delata,count) print('--------------------') start = datetime.datetime.now() count = 1 for i in range(3,1000000,2): if i > 10 and i % 5 == 0: continue for j in range(2,int(i ** 0.5) + 1): if i % j == 0: break else: count +=1 delata = (datetime.datetime.now() - start).total_seconds() print(5,delata,count)
import datetime start = datetime.datetime.now() count = 0 for i in range(3, 100000, 2): if i > 10 and i % 5 == 0: continue for j in range(2, int(i ** 0.5) + 1): if i % j == 0: break else: count += 1 delta = (datetime.datetime.now() - start).total_seconds()

浙公网安备 33010602011771号