檢查 N 是否為 Python 中的階乘素數
假設我們有一個數字 n,我們需要檢查 n 是否是階乘素數。眾所周知,當一個數字比任意數字的階乘少 1 或多 1 時,它被稱為階乘素數。
因此,如果輸入類似於 n = 719,則輸出將為 True,因為 719 = 720 - 1 = 6! - 1
為了解決這個問題,我們將遵循以下步驟 −
- 如果 num 不是素數,則
- 返回 False
- 階乘 := 1,i := 1
- 如果階乘 <= num + 1,則
- 階乘 := 階乘 * i
- 如果 num + 1 等於階乘或 num - 1 等於階乘,則
- 返回 True
- i := i + 1
- 返回 False
示例
讓我們看看以下實現以獲得更好的理解 −
from math import sqrt def isPrime(num) : if num <= 1: return False if num <= 3 : return True if num % 2 == 0 or num % 3 == 0: return False for i in range(5, int(sqrt(num)) + 1, 6) : if num % i == 0 or num % (i + 2) == 0: return False return True def solve(num) : if not isPrime(num) : return False factorial = 1 i = 1 while factorial <= num + 1: factorial *= i if num + 1 == factorial or num - 1 == factorial : return True i += 1 return False num = 719 print(solve(num))
輸入
719
輸出
True
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP