কম্পিউটার

পাইথনের অক্টালে নম্বর প্যালিনড্রোম কিনা তা পরীক্ষা করুন


ধরুন আমাদের একটি সংখ্যা আছে যা হয় অক্টাল বা দশমিক আকারে। যদি এটি অক্টাল আকারে হয় তবে এটি প্যালিনড্রোম কিনা তা পরীক্ষা করুন। যদি সংখ্যাটি দশমিকে হয়, তাহলে এটিকে অক্টালে রূপান্তর করুন তারপর এটি প্যালিনড্রোম কিনা তা পরীক্ষা করুন।

সুতরাং, যদি ইনপুটটি num =178 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ সংখ্যাটি অক্টাল আকারে নয় (8 অক্টালে বৈধ প্রতীক নয় কিন্তু দশমিকে বৈধ), তারপর এটিকে অক্টালে রূপান্তর করুন যা 262 এবং এটি হল প্যালিনড্রোম।

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

  • বেস :=8 যখন সংখ্যার সমস্ত সংখ্যা 8 এর নিচে হয়, অন্যথায় 10
  • oct_list :=একটি নতুন তালিকা
  • সংখ্যা 0 না হলেও
      করুন
    • অক্ট_লিস্টের শেষে সন্নিবেশ করুন (সংখ্যা মোড বেস)
    • num :=(num / base) এর ভাগফল
  • j :=oct_list - 1 এর আকার
  • k :=0
  • যখন k <=j, do
    • যদি oct_list[j] oct_list[k] এর মত না হয়, তাহলে
      • মিথ্যে ফেরত দিন
    • j :=j - 1, k :=k + 1
  • সত্য ফেরান

উদাহরণ

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

def is_all_under_8(num):
   while num:
      if (num % 10) >= 8:
         return False
      else:
         num = int(num / 10)
      return True
def solve(num):
   base = 8 if(is_all_under_8(num) == False) else 10
   oct_list = []
   while num != 0:
      oct_list.append(num % base)
      num = int(num / base)
   j = len(oct_list)-1
   k = 0
   while k <= j:
      if oct_list[j] != oct_list[k]:
         return False
      j-=1
      k+=1
   return True
num = 178
print(solve(num))

ইনপুট

178

আউটপুট

True

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

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

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

  4. বাইনারি উপস্থাপনা প্যালিনড্রোম কিনা তা পরীক্ষা করতে পাইথন প্রোগ্রাম?