Python 判斷 N 是否為強素數
假設我們有一個數字 n。我們要檢查 n 是否為強素數。眾所周知,當一個素數大於其最近素數的平均值時,它被稱為強素數。
因此,如果輸入類似於 num = 37,則輸出為 True,因為最近的素數是 31 和 41,平均值為 (31+41)/2 = 36。並且 37 > 36。
為了解決這個問題,我們將遵循以下步驟:
- 如果 num 不是素數或 num 為 2,則
- 返回 False
- last := num - 1, next := num + 1
- 當 next 不是素數時,執行
- next := next + 1
- 當 last 不是素數時,執行
- last := last - 1
- avg := (last + next) / 2
- 如果 num > avg,則
- 返回 True
- 返回 False
示例
讓我們看看下面的實現來更好地理解:
def isPrime(num): if num > 1: for i in range(2,num): if num % i == 0: return False return True return False def solve(num): if isPrime(num) == False or num == 2: return False last = num - 1 next = num + 1 while isPrime(next) == False: next += 1 while isPrime(last) == False: last -= 1 avg = (last + next) / 2 if num > avg: return True return False num = 37 print(solve(num))
輸入
37
輸出
True
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP