ধরুন আমাদের একটি ধনাত্মক পূর্ণসংখ্যা K আছে, আমাদের ক্ষুদ্রতম ধনাত্মক পূর্ণসংখ্যা N খুঁজে বের করতে হবে যেমন N কে K দ্বারা বিভাজ্য, এবং N-তে শুধুমাত্র 1 সংখ্যা রয়েছে। আমাদের N-এর দৈর্ঘ্য খুঁজে বের করতে হবে। যদি এমন কোন N না থাকে, তাহলে ফিরুন - 1. সুতরাং ইনপুট যদি 3 এর মত হয়, তাহলে আউটপুট হবে 3। সবচেয়ে ছোট উত্তর হবে N =111।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি k জোড় হয়, বা k 5 দ্বারা বিভাজ্য হয়, তাহলে -1 ফেরত দিন
- r :=0 এবং N =1 সেট করুন
- আমি 1 থেকে K + 1
- এর মধ্যে
- r :=(r * 10 + 1) mod 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