python 判斷101-200之間有多少個素數,並輸出所有素數。


程序分析:
一個大於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))

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM