কম্পিউটার

পাইথনে একটি সংখ্যা প্রাইমোরিয়াল প্রাইম কিনা তা পরীক্ষা করুন


ধরুন আমাদের একটি সংখ্যা n আছে, আমাদের পরীক্ষা করতে হবে n একটি আদি মৌলিক কি না। একটি সংখ্যাকে প্রাইমোরিয়াল প্রাইম বলা হয় যখন এটি pN# + 1 বা pN# – 1 ফর্মের একটি মৌলিক সংখ্যা হয়, যেখানে pN# pN এর আদিম নির্দেশ করে যেমন প্রথম N মৌলিক সংখ্যার গুণফল।

সুতরাং, যদি ইনপুট 29 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ 29 হল pN - 1 ফর্মের প্রাইমোরিয়াল প্রাইম যদি N=3, Primorial হল 2*3*5 =30 এবং 30-1 =29।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • MAX :=100000
  • prime :=MAX আকারের একটি তালিকা এবং True দিয়ে পূরণ করুন
  • arr :=একটি নতুন তালিকা
  • একটি ফাংশন সংজ্ঞায়িত করুন SieveOfEratosthenes()। এটি লাগবে
  • পরিসীমা 2 থেকে int((MAX) এর বর্গমূল) + 1 এর মধ্যে pri এর জন্য, do
    • যদি prime[pri] True এর মত হয়, তাহলে
      • পরিসীমা pri * 2 থেকে MAX পর্যন্ত, প্রতিটি ধাপে pri দ্বারা আপডেট করুন, করুন
        • প্রাইম[i] :=মিথ্যা
  • পরিসীমা 2 থেকে MAX-এর জন্য, করুন
    • যদি prime[pri] অ-শূন্য হয়, তাহলে
      • arr-এর শেষে pri ঢোকান
  • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -
  • যদি prime[n] শূন্য হয়, তাহলে
    • মিথ্যে ফেরত দিন
  • পণ্য :=1, i :=0
  • যখন পণ্য
  • পণ্য :=পণ্য * arr[i]
  • যদি পণ্য + 1 n এর মত হয় বা পণ্য - 1 n এর মত হয়, তাহলে
    • সত্য ফেরান
  • i :=i + 1
  • মিথ্যে ফেরত দিন
  • উদাহরণ

    আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    from math import sqrt
    MAX = 100000
    prime = [True] * MAX
    arr = []
    def SieveOfEratosthenes() :
       for pri in range(2, int(sqrt(MAX)) + 1) :
          if prime[pri] == True :
             for i in range(pri * 2 , MAX, pri) :
                prime[i] = False
       for pri in range(2, MAX) :
          if prime[pri] :
             arr.append(pri)
    def check_primorial_prime(n) :
       if not prime[n] :
          return False
       product, i = 1, 0
       while product < n :
          product *= arr[i]
          if product + 1 == n or product - 1 == n :
             return True
          i += 1
       return False
    SieveOfEratosthenes()
    n = 29
    print(check_primorial_prime(n))

    ইনপুট

    29

    আউটপুট

    True

    1. পাইথনে N একটি ডিহেড্রাল প্রাইম নম্বর কিনা তা পরীক্ষা করুন

    2. পাইথনে প্রাইম বা না

    3. প্রাইম নম্বর চেক করতে পাইথন প্রোগ্রাম

    4. পাইথন ব্যবহার করে একটি সংখ্যা প্রাইম কিনা তা কীভাবে পরীক্ষা করবেন?