--- title: 19-6:質數個數 lang: zh-tw tags: DICE Python --- 19-6:質數個數 === > [name=Chinglin-K] --- 目錄:[Dice 程式教學-Python完整版](https://hackmd.io/@Chinglin-K/Dice-menu) 上一篇:[19-5:質數判斷](https://hackmd.io/@Chinglin-K/Dice-19-5) 下一篇:[19-7:無傳回值函數](https://hackmd.io/@Chinglin-K/Dice-19-7) --- ## 題目 請自訂 countprime() 函式練習。 質數的定義為:除了 1 和它本身之外,沒有別的數可以整除它的。 給一個整數計算它的質數個數,程式可以重複執行直到小於 1 為止。 輸入到小於 2 時結束。 輸入範例: 2 3 4 5 6 7 8 9 10 30 40 50 60 1 輸出範例: 1 2 2 3 3 4 4 4 4 10 12 15 17 --- ## 程式碼 ```Python= def countprime(n): num=[] for i in range(2,n+1): for j in range(2,i): #for...else 如果for沒有被break,則會進入else if(i%j==0): break else: #else 為 for-loop 的其中一個部份,如果 break 就一併跳出,沒有的話就會執行到 num.append(i) return len(num) while True: n=int(input()) if(n<2): break print(countprime(n)) #for...else #在執行迴圈的過程中都沒有遇到 break ,迴圈結束時,就會執行 else 子句 #遇到 break ,則直接中斷(跳出)迴圈 #遇到 continue ,則會直接執行 else 語句。因為 continue 語句會強制執行下一次的迴圈。(不會打破迴圈) ``` --- ## 輸出 ```Python= ``` --- 目錄:[Dice 程式教學-Python完整版](https://hackmd.io/@Chinglin-K/Dice-menu) 上一篇:[19-5:質數判斷](https://hackmd.io/@Chinglin-K/Dice-19-5) 下一篇:[19-7:無傳回值函數](https://hackmd.io/@Chinglin-K/Dice-19-7) --- :::info 「盡多少本分,得多少本事」😊 ::: --- {%hackmd i1nMRrZcTFmTvoF897K9zg %}