কম্পিউটার

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


ধরুন আমাদের একটি সংখ্যা n আছে। আমাদের পরীক্ষা করতে হবে n ডাইহেড্রাল প্রাইম কি না। একটি সংখ্যাকে ডাইহেড্রাল প্রাইম বলা হয় যখন সেই সংখ্যাটি নিজেই প্রাইম হয় এবং একই সংখ্যা বা অন্য কোন মৌলিক সংখ্যা 7-সেগমেন্ট ডিসপ্লে ব্যবহার করে ডিসপ্লের ওরিয়েন্টেশন নির্বিশেষে (স্বাভাবিক বা উপরে-নিচে) দেখানো হয়।

সুতরাং, যদি ইনপুট n =1181 এর মত হয়, তাহলে আউটপুট হবে True

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

দ্বিতীয়টি প্রথমটির আপ-সাইড ডাউন ফর্ম্যাট এবং দুটিই প্রাইম৷

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

  • একটি ফাংশন সংজ্ঞায়িত করুন up_side_down()। এটি n
  • লাগবে
  • temp :=n, মোট :=0
  • যখন temp> 0, do
    • d :=টেম্প মোড 10
    • যদি d 2 এর সমান হয়, তাহলে d :=5
    • অন্যথায় যখন d 5 এর সমান হয়, তখন d :=2
    • মোট :=মোট * 10 + d
    • temp :=(temp / 10) এর ভাগফল
  • মোট রিটার্ন
  • প্রধান পদ্ধতি থেকে নিম্নলিখিতগুলি করুন:
  • যদি n প্রাইম না হয় বা up_side_down(n) প্রাইম না হয় বা n এর রিভার্স প্রাইম না হয় বা up_side_down(n) এর বিপরীত প্রাইম না হয়, তাহলে
    • মিথ্যে ফেরত দিন
  • তাপ :=n
  • যখন temp> 0, do
    • rem :=temp mod 10
    • যদি rem এই [3, 4, 6, 7, 9] এর যে কোনো একটি হয়, তাহলে
      • মিথ্যে ফেরত দিন
    • temp :=(temp / 10) এর ভাগফল
  • সত্য ফেরান

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

উদাহরণ কোড

prime = (int(1e5)+5)*[True]
def reverse(n):
   return int(str(n)[::-1])
 
def up_side_down(n):
   temp = n
   total = 0
   while temp>0:
      d = temp % 10
      if d == 2:
         d = 5
      elif d == 5:
         d = 2
      total = total * 10 + d
      temp//= 10
 
   return total
 
def get_all_prime():
   prime[0] = prime[1] = False
 
   for i in range(2, int(1e5)+1):
      j = 2
      while i * j<= int(1e5):
         prime[i * j] = False
         j+= 1
 
def solve(n):
   get_all_prime()
   if not prime[n] or not prime[up_side_down(n)] or not prime[reverse(n)] or not prime[reverse(up_side_down(n))]:
      return False
 
   temp = n
 
   while temp>0:
      rem = temp % 10;
      if rem in [3, 4, 6, 7, 9]:
         return False
      temp //= 10
 
   return True

n = 1181
print(solve(n))

ইনপুট

23, 3

আউটপুট

True

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

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

  3. একটি সংখ্যা প্রাইম কি না তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

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