python素数计算及输出
要求:判断在101-200这个区间内有都多少素数,并逐一输出
方法一:
1 list1 = [i for i in range(101,201)] 2 list_new = [] 3 for i in range(101,201): 4 for j in range(2,i): 5 if i % j == 0: #将能整数得放到一个列表中 6 list_new.append(i) 7 break 8 9 list_prime = [i for i in list1 if i not in list_new ] #素数为全部数据排除掉能被整除得 10 print(len(list_prime),list_prime)
方法二:
1 list1 = [i for i in range(101,201)] 2 list_new = [] 3 for i in range(101,201): 4 for j in range(2,int(i**0.5) +1): #int(i**0.5)+1是为了节省时间,改进版验证数据少一般多 5 if i % j == 0: #将能整数得放到一个列表中 6 list_new.append(i) 7 break 8 9 list_prime = [i for i in list1 if i not in list_new ] #素数为全部数据排除掉能被整除得 10 print(len(list_prime),list_prime)
方法三:使用标记位
1 h,leap = 0,1 2 from math import sqrt 3 4 for m in range(101,201): 5 k = int(sqrt(m+1)) 6 for i in range(2,k+1): 7 if m%i == 0: 8 leap = 0 #使用标记位 9 break 10 if leap == 1: #标记位位1时是素数,将素数打印出来 11 print("%-4d"%m,end = ' ') 12 h += 1 13 # if h % 10 == 0: #10个隔行 14 # print("") 15 leap = 1 #重置标记位为1 16 print(h)
测试结果:
共:21个素数
分别为:
101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199