কম্পিউটার টিউটোরিয়াল

পাইথনে K দিয়ে বিভাজ্য সবচেয়ে ছোট পজিটিভ ইন্টিজার বের করুন

একটি পজিটিভ ইন্টিজার K দেওয়া আছে। সবচেয়ে ছোট পজিটিভ ইন্টিজার N বের করতে হবে যাতে N, K দিয়ে বিভাজ্য হয় এবং N-এ শুধু ডিজিট ১ থাকে। N-এর দৈর্ঘ্য রিটার্ন করতে হবে। যদি এমন N না থাকে, তবে -1 রিটার্ন।

ইনপুট 3 হলে আউটপুট 3। কারণ N = 111।

সমাধানের ধাপসমূহ

  • যদি K জোড় সংখ্যা হয় বা 5 দিয়ে বিভাজ্য হয়, তবে -1 রিটার্ন
  • r := 0, N = 1 সেট করুন
  • i = 1 থেকে K+1 পর্যন্ত লুপ:
    • r := (r * 10 + 1) % K
    • যদি r == 0 হয়, তবে i রিটার্ন

উদাহরণ

class Solution(object):
    def smallestRepunitDivByK(self, K):
        if K % 2 == 0 or K % 5 == 0:
            return -1
        r = 0
        N = 1
        for i in range(1, K+1):
            r = (r * 10 + 1) % K
            if r == 0:
                return i

ob = Solution()
print(ob.smallestRepunitDivByK(11))

ইনপুট

11

আউটপুট

2
  1. পাইথনে BST-এ Kth Smallest Element (K-তম ক্ষুদ্রতম উপাদান)

  2. পাইথনে বাইনারি লিস্টকে ইন্টিজারে রূপান্তর

  3. পাইথনে X দিয়ে বিভাজ্য সবচেয়ে ছোট K-ডিজিট নম্বর বের করা

  4. পাইথনে bin() ফাংশন