কম্পিউটার

পাইথনে বাইনারি রিপ্রেজেন্টেশনে সেট বিটের প্রাইম নম্বর


ধরুন আমাদের দুটি পূর্ণসংখ্যা L এবং R আছে, আমাদের পরিসরে সংখ্যার গণনা বের করতে হবে [L, R] (অন্তর্ভুক্ত) তাদের বাইনারি আকারে সেট বিটের মৌলিক সংখ্যা রয়েছে।

সুতরাং, যদি ইনপুটটি L =6 এবং R =10 এর মত হয়, তাহলে আউটপুট হবে 4, কারণ 4টি সংখ্যা 6(110), 7(111), 9(1001), 10(1010), সবকটিরই প্রাইম রয়েছে। সেট বিটের সংখ্যা।

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

  • গণনা :=0
  • L থেকে R রেঞ্জের মধ্যে j এর জন্য, করুন
  • যদি j-এর সেট বিট গণনা [2,3,5,7,11,13,17,19] হয়, তাহলে
    • গণনা :=গণনা + 1
  • রিটার্ন গণনা

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

উদাহরণ

class Solution:
   def countPrimeSetBits(self, L, R):
      def popcount(i):
         return bin(i)[2:].count('1')
      count = 0
      for j in range(L,R+1):
         if popcount(j) in [2,3,5,7,11,13,17,19]:
            count +=1
      return count
ob = Solution()
print(ob.countPrimeSetBits(6,10))

ইনপুট

6,10

আউটপুট

4

  1. সি-তে ফ্লোটিং পয়েন্ট নম্বরে সেট বিটগুলি কীভাবে গণনা করবেন?

  2. পাইথন প্রোগ্রাম পরপর 1’ ছাড়া বাইনারি স্ট্রিং সংখ্যা গণনা করতে

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

  4. একটি সংখ্যার মোট বিট গণনা করার জন্য একটি পাইথন প্রোগ্রাম লিখুন?