练习十二:素数计算及输出

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
原文地址:https://www.cnblogs.com/pinpin/p/9929293.html