মান লিজিয়ে আমাদের একটি সংখ্যা n আছে, আমাদের যাচাই করতে হবে n কি একটি ফ্যাক্টোরিয়াল প্রাইম (Factorial prime)। আমরা জানি একটি সংখ্যা ফ্যাক্টোরিয়াল প্রাইম বলা হয় যখন এটি একটি মৌলিক সংখ্যা যা কোনো সংখ্যার ফ্যাক্টোরিয়ালের চেয়ে এক কম বা এক বেশি।
যেমন, ইনপুট যদি n = 719 হয়, তবে আউটপুট হবে True কারণ ৭১৯ = ৭২০ - ১ = ৬! - ১।
সমাধানের ধাপসমূহ
- যদি
numএকটি মৌলিক সংখ্যা নয়, তবে:Falseরিটার্ন করুন
factorial := 1, i := 1
<লি>যখন factorial := factorial * i- যদি
num + 1factorialসমান হয় অথবাnum - 1factorialসমান হয়, তবে:Trueরিটার্ন করুন
i := i + 1Falseরিটার্ন করুন
factorial <= num + 1, করুন:
উদাহরণ
বेहतर বোঝার জন্য নিচের বাস্তবায়নটি দেখুন:
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