मान लीजिए कि हमारे पास एक सकारात्मक पूर्णांक K है, हमें सबसे छोटा धनात्मक पूर्णांक N खोजने की आवश्यकता है, ताकि N, K से विभाज्य हो, और N में केवल अंक 1 हो। हमें N की लंबाई ज्ञात करनी है। यदि ऐसा कोई N नहीं है, तो वापस लौटें - 1. तो अगर इनपुट 3 जैसा है, तो आउटपुट 3 होगा। सबसे छोटा उत्तर N =111 होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यदि k सम है, या k 5 से विभाज्य है, तो -1 लौटाएं
- आर सेट करें:=0 और एन =1
- i के लिए 1 से K + 1 की श्रेणी में
- r :=(r * 10 + 1) मॉड k
- अगर r =0 है, तो मैं वापस आ जाता हूँ
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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