ধরুন আমাদের একটি সংখ্যা n আছে, আমাদের পরীক্ষা করতে হবে n একটি ফ্যাক্টরিয়াল প্রাইম কি না। যেমনটি আমরা জানি একটি সংখ্যাকে ফ্যাক্টরিয়াল প্রাইম বলা হয় যখন এটি একটি মৌলিক সংখ্যা হয় যেটি যেকোনো সংখ্যার ফ্যাক্টরিয়াল থেকে একটি কম বা এক বেশি।
সুতরাং, যদি ইনপুটটি n =719 এর মত হয়, তাহলে আউটপুটটি 719 =720 - 1 =6 হিসাবে True হবে! - 1
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি num একটি মৌলিক না হয়, তাহলে
- মিথ্যে ফেরত দিন
- ফ্যাক্টোরিয়াল :=1, i :=1
- যখন ফ্যাক্টোরিয়াল <=num + 1, do
- ফ্যাক্টোরিয়াল :=ফ্যাক্টোরিয়াল * i
- যদি num + 1 ফ্যাক্টোরিয়ালের মতো হয় বা num - 1 ফ্যাক্টোরিয়ালের মতো হয়, তাহলে
- সত্য ফেরান
- i :=i + 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