ধরুন আমাদের একটি সংখ্যা n আছে। আমাদের পরীক্ষা করতে হবে n ইউক্লিড সংখ্যা কি না। আমরা জানি ইউক্লিড সংখ্যা হল পূর্ণসংখ্যা যাকে
হিসাবে উপস্থাপন করা যেতে পারেn=Pn +1
প্রথম n মৌলিক সংখ্যার গুণফল কোথায়।
সুতরাং, যদি ইনপুটটি n =211 এর মত হয়, তাহলে আউটপুট হবে True n কে
হিসাবে উপস্থাপন করা যেতে পারে।211=(2×3×5×7)+1
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- MAX :=10000
- primes :=একটি নতুন তালিকা
- একটি ফাংশন generate_all_primes() সংজ্ঞায়িত করুন। এটি লাগবে
- prime :=MAX আকারের একটি তালিকা এবং True দিয়ে পূরণ করুন
- x :=2
- যখন x * x
- যদি prime[x] True হয়, তাহলে
- আমি x * 2 থেকে MAX রেঞ্জের জন্য, প্রতিটি ধাপে x দ্বারা আপডেট করুন, করুন
- প্রাইম[i] :=মিথ্যা
- x :=x + 1
- যদি prime[x] True হয়, তাহলে
- যদি prime[x] সত্য হয়, তাহলে
- প্রাইম এর শেষে x ঢোকান
- সত্য ফেরান
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ কোড
MAX = 10000 primes = [] def generate_all_primes(): prime = [True] * MAX x = 2 while x * x < MAX : if prime[x] == True: for i in range(x * 2, MAX, x): prime[i] = False x += 1 for x in range(2, MAX): if prime[x]: primes.append(x) def solve(n): generate_all_primes() mul = 1 i = 0 while mul < n : mul = mul * primes[i] if mul + 1 == n: return True i += 1 return False n = 211 print(solve(n))
ইনপুট
211
আউটপুট
True