चुनौती
इस चुनौती के लिए, आपको यह निर्धारित करना चाहिए कि क्या कोई नंबर कैंटर सेट में है। तो पहले, चलो कैंटर सेट को परिभाषित करते हैं।
सबसे पहले, 0 और 1. के बीच की संख्या से शुरू करें। इस सीमा के बाहर की कोई भी संख्या कैंटर सेट में नहीं है। अब, संख्याओं को तीन समान भागों में विभाजित करते हैं: [0,1 / 3], [1 / 3,2 / 3], [2/3, 1]। पहले और अंतिम भागों की श्रेणियों के अंदर न होने वाली कोई भी संख्या कैंटर सेट में नहीं है। अब, आप इस प्रक्रिया को खंडों [0,1 / 3] और [2/3, 1] के लिए दोहराते हैं। फिर आप बचे हुए को दोहराते हैं। आप ऐसा हमेशा करते रहते हैं। अंत में, शेष सभी संख्याएँ कैंटर सेट में हैं। यहाँ पहले छह पुनरावृत्तियों का एक चित्र है:
इनपुट
दो पूर्णांक x
और y
। जब तक 1
0 < y < 2^15
0 <= x <= y
का सबसे बड़ा सामान्य भाजक x
और y
है x == 0
।
उत्पादन
अगर x/y
कैंटर सेट में है तो सच्चाई ।
अगर x/y
कैंटर सेट में नहीं है तो झूठा ।
उदाहरण
अब, चलो संख्याओं के कुछ उदाहरण देखते हैं जो कैंटर सेट में हैं।
1/3 -> true
यह एक सीमा पर है, और सीमाओं को कभी भी हटाया नहीं जाता है।
1/4 -> true
1/4
यह खंड के मध्य तीसरे में कभी नहीं होता है, हालांकि यह सीमा पर कभी भी नहीं होता है। यदि आप इसका अनुसरण करते हैं, तो आप वास्तव में पाएंगे कि यह किसी अनुभाग के पहले और अंतिम तिहाई में होने के बीच वैकल्पिक है।
1/13 -> true
1/13
पहले, पहले और अंतिम खंडों के बीच वैकल्पिक।
1/5 -> false
1/5
1/9 और 2/9 के बीच, उपरोक्त आरेख में तीसरी पंक्ति के पहले खाली ब्लॉक में आता है।
अन्य परीक्षण मामले:
0/4 -> true
3/10 -> true
3/4 -> true
10/13 -> true
1/1 -> true
12/19 -> false
5/17 -> false
3/5 -> false
1/7 -> false
1/2 -> false
आप इस स्निपेट के साथ अन्य संख्याएँ आज़मा सकते हैं:
उद्देश्य
सबसे कम बाइट वाला व्यक्ति जीतता है।
x == 0