ধরুন আমাদের একটি সংখ্যা n আছে। আমাদের n একটি শক্তিশালী প্রাইম কিনা তা পরীক্ষা করতে হবে। আমরা জানি যে একটি সংখ্যাকে শক্তিশালী মৌলিক বলা হয় যখন এটি একটি মৌলিক সংখ্যা হয় যা নিকটতম মৌলিক সংখ্যার গড় থেকে বড় হয়।
সুতরাং, যদি ইনপুটটি num =37 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ নিকটতম মৌলিক সংখ্যাগুলি হল 31 এবং 41, গড় হল (31+41)/2 =36৷ এবং 37> 36৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি num প্রাইম না হয় বা num 2 হয়, তাহলে
- মিথ্যে ফেরত দিন
- শেষ :=সংখ্যা - 1, পরবর্তী :=সংখ্যা + 1
- যদিও পরেরটি প্রাইম নয়, কর
- পরবর্তী :=পরবর্তী + 1
- যদিও শেষ প্রাইম না হয়, ডু
- শেষ :=শেষ - ১
- গড় :=(শেষ + পরবর্তী) / 2
- যদি num> avg হয়, তাহলে
- সত্য ফেরান
- মিথ্যে ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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