计算大数值素数

筅森魡賤 提交于 2020-02-07 00:35:12

发现运算速度和使用range()没有太大差别…

from os import system

def loop(m, n, k): #功能与range(m, n, k)相同,防止数值过大时list占用过多空间
	num = m
	while num < (n-k):
		if num == m:
			yield m
			num += k
		else:
			yield num
			num += k

def prime(n):
	for i in loop(1, n, 2): #起始数值为奇数
		j = 2
		while j<i and i%j != 0:
			if j == 2:
				j += 1
			else:
				j += 2
		if j == i:
			yield j

def main():
	n = 10000
	print(2, end = ' ')
	for num in prime(n):
		print(num, end = ' ')
	system('pause')

main()
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!