程序分析:一个大于1的正整数,如果除了1和它本身以外,不能被其他正整数整除,就叫素数。
一、参考解法:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
from math import sqrth=0for m in range(101,201): leap=1 k = int(sqrt(m)) #返回数字的平方根 for i in range(2,k+1):#K+1,表示从2循环到K(包含k) if m % i==0: leap=0 break if leap==1: print('%-4d'%m) h+=1 if h % 10==0: print('')print('The total is %d'%h)
二、参考解法:
使用函数解法
from math import sqrth=0def su(n): global h #声明全局变量 for i in range (2,int(sqrt(n)+1)): if n%i==0: return print('%d'%n) h +=1 if h%10==0: print('') returnfor j in range(101,201): su(j)print('The total is %d'%h)
三、参考解法:
使用集合解法
l=[ ]for i in range(101,200): for j in range(2,i-1): if i % j==0: break else: #for......else 中,else语句会在 for 不通过 break 跳出而中断的情况下执行。 l.append(i)print(l)print('总数为:%d'%len(l))
四、参考解法:
使用列表切片解法
import mathp=range(101,201)aList=list(p)for i in range(101,201): for j in range(2,int(math.sqrt(i)+1)): if i % j==0: aList.remove(i) breakprint(aList)print('总数为:%d'%len(aList))