जानने योग्य बातें:
सबसे पहले, भाग्यशाली संख्या।
भाग्यशाली संख्याएं इस तरह उत्पन्न होती हैं:
सभी प्राकृतिक संख्याएँ लें:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20...
फिर, प्रत्येक दूसरे नंबर को हटा दें।
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39...
अब, 3
सुरक्षित है।
हर तीसरा नंबर निकालें:
1, 3, 7, 9, 13, 15, 19, 21, 25, 27, 31, 33, 37, 39, 43, 45, 49, 51, 55, 59...
अब, 7
सुरक्षित है।
हर 7 वें नंबर को निकालें।
जारी रखें, और हर n
वें नंबर को हटा दें , जहां n
उन्मूलन के बाद पहली सुरक्षित संख्या है।
सुरक्षित नंबरों की अंतिम सूची भाग्यशाली संख्या है।
अशुभ संख्याओं की अलग-अलग सूचियों से बना है, जो हैं [U1, U2, U3... Un]
।
U1
भाग्यशाली "उम्मीदवारों" से हटाए गए अंकों का पहला सेट है, इसलिए वे हैं:
2, 4, 6, 8, 10, 12, 14, 16, 18, 20...
U2
हटाए गए नंबरों का दूसरा सेट है:
5, 11, 17, 23, 29, 35, 41, 47, 53, 59...
और तो और आगे ( U3
तीसरी सूची U4
है, चौथा है, आदि)
चुनौती:
आपका कार्य है, जब दो इनपुट दिए जाते हैं m
और n
, m
सूची में वें नंबर को उत्पन्न करते हैं Un
।
उदाहरण इनपुट और आउटपुट:
(5, 2) -> 29
(10, 1) -> 20
चश्मा:
- के लिए अपने कार्यक्रम होगा काम
m
करने के लिए1e6
, औरn
अप करने के लिए100
।- आपको गारंटी दी जाती है कि दोनों सकारात्मक हैं
m
औरn
पूर्णांक हैं। - यदि आप उत्सुक हैं,
U(1e6, 100)
=5,333,213,163
। (साभार @pacholik!)
- आपको गारंटी दी जाती है कि दोनों सकारात्मक हैं
- आपके प्रोग्राम को एक आधुनिक कंप्यूटर पर 1 दिन के भीतर गणना करनी चाहिए।
यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे छोटा कोड है!
पुनश्च: यह अच्छा होगा यदि कोई व्यक्ति इन्हें उत्पन्न करने के लिए एक सामान्य सूत्र के साथ आए। यदि आपके पास कोई सूत्र है, तो कृपया इसे अपने उत्तर में रखें!
(1e6,1e6)
?
n=1
मामले में काम नहीं करने के लिए स्वीकार्य है ? जैसा कि यह विशेष है - अन्य सभी मामलों के लिए, अगले भाग्यशाली संख्या का 0-आधारित सूचकांक है n-1
।