题目:判断101-200之间有多少个素数,并输出所有…

2018-06-23 13:16:57来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

程序分析:
一个大于1的正整数,如果除了1和它本身以外,不能被其他正整数整除,就叫素数

一、参考解法:
判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

from math import sqrt
h=0
for 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 sqrt
h=0
def 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('')
    return
for 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 math
p=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)
            break
print(aList)
print('总数为:%d'%len(aList))

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python 3 简易用户登录系统,输错三次密码锁定账号

下一篇:wordcloud安装